将CommandBindings添加到ContextMenus

时间:2011-02-08 18:44:52

标签: wpf data-binding contextmenu commandbinding routedcommand

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

树中的每个节点都有一个上下文菜单,该菜单是通过将其绑定到底层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,那么如果树很大,那么这可能是非常耗费资源的?在需要时更好地创建和销毁绑定?

0 个答案:

没有答案