下の画像からわかるように、2つのホバー状態がわかります。ここにはXAMLがありますMenuCollection 2回のバインドMVVM +データバインディングの子メニュー項目
<Menu ItemsSource="{Binding Data.MenuCollection}">
<Menu.ItemTemplate >
<DataTemplate DataType="MenuItem">
<MenuItem Header="{Binding Header}" Command="{Binding Command}" ItemsSource="{Binding Children}"/>
</DataTemplate>
</Menu.ItemTemplate>
</Menu>
データのコレクションはヘッダーで機能します。しかし、私は子ノードを表示することはできません。
public void CreateTempMenuList()
{
MenuCollection = new ObservableCollection<MenuItem>()
{
new MenuItem()
{
Header = "File",
Children = new ObservableCollection<MenuItem>()
{
new MenuItem()
{
Header = "Exit"
}
}
}
};
}
MenuItem
クラスは私が作成したものです。各プロパティには、OnPropertiesChanged
関数を呼び出すセッターがあります。私は必要に応じてクラスを追加することができますが、私はかなり問題ではないと確信しています。
私の質問はそうです。どうすれば'double' hover
を取り除くことができますか?画像では2 borders
を見ることができます。私が上に乗るouter border
。ホバーは何かに集中するまで残っています。
私の2番目の質問は、どのように子アイテムを動作させることができますか? menuitem
タグのitemssource
は間違っている可能性がありますが、そのすべては私が考えることができます。
ありがとうございました。そして、私はシステムMenuItemクラスにバインドしていません、私はそれのために自分のクラスを構築しました。ありがとうございます:) –