良い日中。
ContextMenu
の作成に問題がありTreeView
ます。問題は非常に単純です。treeviewitemでRMBをクリックし、コンテキストメニューコマンドを選択して、treeviewに新しいアイテムを追加したいと思います。
親アイテムを含むパラメーターをコマンドに渡す必要があることはわかっています。しかし。選択しただけでなく、任意のtreeviewitemをRMBクリックできる必要があります。
そしてここに質問があります:
treeviewitemのバインドされたデータを私のコマンドに渡す方法。
これがクラス診断です
これがXamlです(編集)
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Item.Children}">
<TextBlock Text="{Binding Item.Code}" HorizontalAlignment="Stretch">
<TextBlock.ContextMenu>
<ContextMenu Name="MyContextMenu" DataContext="{Binding PlacementTarget,RelativeSource={RelativeSource Self}}">
<MenuItem Header="{Binding DataContext.ToString()}" Command="{Binding DataContext.Item.AddNewItemCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
しかし、それは私のコマンドを呼び出すことさえしません。
private void AddNewItem(object toItem)
{
if (toItem == null)
return;
ItemViewModel item = toItem as ItemViewModel;
ItemMaterialModel itemMaterial = new ItemMaterialModel(ItemModel.CreateNewItem());
ItemMaterialViewModel itemMaterialViewModel = new ItemMaterialViewModel(itemMaterial);
item.Children.Add(itemMaterialViewModel);
}
たぶん私のコマンドが間違ったViewModelにありますか?
よろしく、ドミトリー。