白天好。
我在创建ContextMenu
. TreeView
问题很简单。我想向树视图添加新项目,单击树视图项目上的人民币并选择上下文菜单命令。
我知道我需要向我的命令传递一个包含父项的参数。但。我需要我可以人民币点击任何treeviewitem,而不仅仅是选中。问题是:
如何将 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 中?
问候,德米特里。