我有一个包含许多不同类型节点的树视图。
树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层 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>
但是,我的命令没有命令绑定,所以当我选择树视图项时,主菜单(即剪切/复制/粘贴)不会改变。
我的问题是如何将我的命令绑定添加到每个树视图项?
我想我可以绑定到它们,但我还没有设法让它工作。我唯一的另一个想法是在选择/取消选择树视图项时创建/删除绑定。
我还担心,如果我确实设法将命令绑定直接绑定到树视图项,那么如果树很大,这可能会占用大量资源?在需要时创建和销毁绑定更好吗?