itemsource が Model クラスのコレクションである treeView があります。treeView にコンテキスト メニューを追加しました。contextMenu のコマンドはビジュアル ツリーにある必要があるため、Model クラスに配置する必要がありました。どちらが間違っていますか (モデルへのディレクトリのバインド)。
コンテキスト メニューのコマンドをモデルではなく ViewModel にバインドするにはどうすればよいですか?
ありがとう
itemsource が Model クラスのコレクションである treeView があります。treeView にコンテキスト メニューを追加しました。contextMenu のコマンドはビジュアル ツリーにある必要があるため、Model クラスに配置する必要がありました。どちらが間違っていますか (モデルへのディレクトリのバインド)。
コンテキスト メニューのコマンドをモデルではなく ViewModel にバインドするにはどうすればよいですか?
ありがとう
コマンドをモデルに配置する必要はありません。ここでは、以下のように ViewModel のコマンドにアクセスできます。ここTag
には、ViewModel へのバインドが含まれており、コマンドへのアクセスに使用できます。
<TreeView Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem Header="MyCommand"
CommandParameter="{Binding }"
Command="{Binding Path=PlacementTarget.Tag.DataContext.MyCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>