我是WPF和MVVM的新手。我尋找了一種在MVVM parttern中動態創建菜單的好方法,我沒有找到任何符合我喜好的東西,所以我推出了自己的解決方案。它可以工作,但由於某些原因,菜單的前景(文本)顏色有時(有時)不正確。WPF,MVVM和菜單前景色
我在下面添加了一個鏈接。
http://img220.imageshack.us/img220/1912/badmenu.jpg
(死鏈接)
我最低的子菜單顯示正確搭配白色的前景,但其父菜單forground變爲黑色,幾乎是不可能的閱讀。如果我對菜單進行了硬編碼,那麼父級的背景色將是白色的。如果我將鼠標移到父項上,其文本將切換回白色,並且子菜單將變爲黑色。
此外,一旦我將鼠標從父項移開,其所有布爾屬性IsHighlighted, IsSubmenuOpen, etc...
都會變成錯誤,這對我來說是令人驚訝的,因爲我認爲它們應該保持爲真。最終的結果是我沒有能夠通過風格觸發器來解決這個問題。
這是我的XAML。
<Window.Resources>
<DataTemplate DataType="{x:Type src:ParentMenu}" >
<Menu >
<MenuItem Header="{Binding MenuName}" ItemsSource="{Binding ChildMenuItems}" />
</Menu>
</DataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:ChildMenu}"
ItemsSource="{Binding ChildMenuItems}" >
<MenuItem Header="{Binding MenuName}" Command="{Binding Path=Command}" />
</HierarchicalDataTemplate>
'的StackOverflow被掩蓋我的結束標記Window.Resources
<DockPanel>
<Menu DockPanel.Dock="Top" ItemsSource="{Binding Menus}" />
<Grid>
<!-- Add additional content here -->
</Grid>
</DockPanel>
兩個ParentMenu
,並從實際持有的所有菜單和普通類ChildMenu
繼承通過ChildMenuItems
集合公開的子菜單。 ChildMenuItems
是一個ChildMenu
對象的列表。我的ViewModels
公開了一個ParentMenu
對象的列表。
有可能有更好的方法來完成我想在這裏。這裏有一個例子:
img132.imageshack.us/img132/4160/bettermenu.jpg
(死鏈接)
什麼我做錯了任何建議和/或如何解決顯示問題?
我們可以看到視圖模型嗎? – 2009-06-18 13:41:46