私はWPFとMVVMの両方を初めて使用しています。私は動的にMVVMの部分でメニューを作成するための良い方法を探していましたが、私は自分の好みには何も見つかりませんでした。それは動作しますが、何らかの理由でメニューの前景(テキスト)の色が時々(たまには)正しくないことがあります。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>
実際にすべてのメニューを保持し、ChildMenuItems
コレクションをサブメニューを公開する一般的なクラスから両方ParentMenu
とChildMenu
継承のための私の終了タグをマスキングしています。 ChildMenuItems
はChildMenu
のオブジェクトのリストです。私のViewModels
はParentMenu
のオブジェクトを公開しています。
おそらく私がここでしたいものを達成するためのより良い方法があります。次に例を示します。
img132.imageshack.us/img132/4160/bettermenu.jpg
(デッドリンク)
私が間違ってやって上の任意の提案および/または表示の問題を修正する方法?
ビューモデルを表示できますか? –