0

我有一个包含许多不同类型节点的树视图。

树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层 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>

但是,我的命令没有命令绑定,所以当我选择树视图项时,主菜单(即剪切/复制/粘贴)不会改变。

我的问题是如何将我的命令绑定添加到每个树视图项?

我想我可以绑定到它们,但我还没有设法让它工作。我唯一的另一个想法是在选择/取消选择树视图项时创建/删除绑定。

我还担心,如果我确实设法将命令绑定直接绑定到树视图项,那么如果树很大,这可能会占用大量资源?在需要时创建和销毁绑定更好吗?

4

0 回答 0