MVVM 下 ContextMenu的命令绑定

简介: 原文:MVVM 下 ContextMenu的命令绑定  由于ContextMenu不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的。
原文: MVVM 下 ContextMenu的命令绑定

  由于ContextMenu不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的。因此可通过以下两个方式解决绑定的问题。

1、使用资源的方式

 1         <Button Content="Test" Command="{Binding TestCommand}">
 2             <Button.Resources>
 3                 <vm:ThreeViewModel x:Key="Three"/>
 4             </Button.Resources>
 5             <Button.ContextMenu>
 6                 <ContextMenu>
 7                     <MenuItem Header="测试" Command="{Binding TestCommand,Source={StaticResource Three}}"/>
 8                 </ContextMenu>
 9             </Button.ContextMenu>
10         </Button>
11     

 

2、利用ContextMenu的PlacementTarget属性

        <Button Content="Test" Command="{Binding TestCommand}">
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="测试" Command="{Binding PlacementTarget.DataContext.TestCommand,  RelativeSource={RelativeSource AncestorType=ContextMenu} }"/>
                </ContextMenu>
            </Button.ContextMenu>
        </Button>

 

目录
相关文章
|
前端开发 C#
WPF MVVM中在ViewModel中关闭或者打开Window
原文:WPF MVVM中在ViewModel中关闭或者打开Window 这篇博客将介绍在MVVM模式ViewModel中关闭和打开View的方法。 1. ViewModel中关闭View public class MainViewModel { publi...
3003 0
|
9月前
|
JavaScript 编译器
【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。
【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。
|
前端开发
RadioButton单选框的绑定问题(MVVM)
RadioButton单选框的绑定问题(MVVM)
|
前端开发 C#
WPF MVVM 如何在 ViewModel 中关闭界面窗口
WPF MVVM 如何在 ViewModel 中关闭界面窗口
|
索引
PyQt5 技术篇-QComboBox下拉框绑定监听事件实例演示
PyQt5 技术篇-QComboBox下拉框绑定监听事件实例演示
996 0
|
前端开发 开发者
在 React 中为按钮绑定点击事件2|学习笔记
快速学习在 React 中为按钮绑定点击事件2
86 0
|
前端开发 JavaScript 开发者
在 React 中为按钮绑定点击事件1|学习笔记
快速学习在 React 中为按钮绑定点击事件1
462 0
|
JavaScript
VUE element-ui之Dialog对话框关闭事件
VUE element-ui之Dialog对话框关闭事件
2093 0
VUE element-ui之Dialog对话框关闭事件
|
前端开发 JavaScript
在React中为按钮绑定点击事件
一、React中绑定事件的注意点 二、各案例详解
|
前端开发
MVVM模式下 DataTemplate 中控件的绑定
原文:MVVM模式下 DataTemplate 中控件的绑定   今天给ListBox中通过DataTemplate生成的Button绑定命令时,一开始Button始终找不到绑定的命令。现找到了正确的绑定方式,特来记录一下。
1617 0