我有一个树视图,其中包含许多不同类型的节点。
树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层ViewModel中的ICommand对象数组而动态创建的。这很好用,上下文菜单按预期工作。
<TreeView Name="treeView1" ItemsSource="{Binding}" ItemTemplateSelector="{StaticResource defSelect}">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu ItemsSource="{Binding Path=Commands}">
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
但是我的命令没有命令绑定,因此当我选择treeviewitem时,主菜单(即剪切/复制/粘贴)不会改变。
我的问题是如何将命令绑定添加到每个树视图项?
我想我可以绑定他们,但我没有设法让它工作。 我唯一的另一个想法是在选择/取消选择treeviewitem时创建/删除绑定。
我还担心如果我确实设法将命令绑定直接绑定到treeviewitem,那么如果树很大,那么这可能是非常耗费资源的?在需要时更好地创建和销毁绑定?