zoukankan      html  css  js  c++  java
  • WPF之ContextMenu的命定绑定

    在WPF中右击菜单项的XMAL代码是:

    <ContextMenu x:Key="sampleContextMenu">
    <MenuItem Header="在前面插入行" Click="InsertRowFront_Click"/>
    <MenuItem Header="在后面插入行" Click="InsertRowBehind_Click"/>
    <MenuItem Header="删除行" Click="DeleteRow_Click"/>
    <MenuItem Header="debug1" Command="{Binding cmd1}"/>
    </ContextMenu>

    比如想在TEXTBOX中右击时候出现菜单,只需有在TEXTBOX中使用

                    <TextBox x:Name="textBoxName" Text="{Binding textValue,Mode=TwoWay}" Width="75" Height="36" ContextMenu="{StaticResource sampleContextMenu}" Style="{DynamicResource TextBoxStyle1}"/>

    然后以上代码如果是在<UserControl>标签中使用的话,使用Click绑定的函数只能定义在<UserControl>的后台代码中,如果使用Command绑定的话,不管命定定义在<UserControl>还是引用<UserControl>的<Window>的后台代码中,都无法有效绑定,经过多次尝试,我在XMAL中引入MainWindow,将命定cmd1定义在Mainwindow的后台代码中

    <local:MainWindow x:Key="dataContextProxy"/>

    然后将菜单代码改为 <MenuItem Header="debug1" Command="{Binding cmd1,Source={StaticResource dataContextProxy}}"/>

    发现有效使用命令。

    之前我在<UserControl>的后台代码中定义命定使用this.DataContext=this,无法有效绑定命定,在<MainWindow>d的后台代码中定义命定并将UserControl的DataContext指向MainWindow同样无效。至于为什么会出现这种情况,等以后有时间慢慢研究。。

    至于为何会出现这种情况,还等以后有时间慢慢研究。

  • 相关阅读:
    POJ1001 Exponentiation
    centos 在安装YouCompleteMe时提示 Fatal : pyconfig.h No such file or directory
    VMware12上安装CentOS无法上网问题
    mysql报错:/usr/sbin/mysqld:unknown variable 'default-character-set=utf8'
    centos7 python3.5安装mysqlclient1.3.9
    DirectDraw创建Windows窗口
    二进制移位溢出
    格式化时间 与 时间戳的转换
    ADO 读取 ACCESS
    Windows DOS 窗口设置字体颜色
  • 原文地址:https://www.cnblogs.com/lelehellow/p/6409121.html
Copyright © 2011-2022 走看看