zoukankan      html  css  js  c++  java
  • WPF委托命令DelegateCommand的传参方式

    首先引用  Microsoft.Practices.Prism

    MVVM模式代码如下:

    XAML代码:

    <!-- 无参方式 -->
    <Button Content="Test Command" Command="{Binding TestCommand}" />
    
    <!-- 将自己作为参数 -->
    <Button Content="Test Command2" Command="{Binding TestCommand2}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" >
    
    <!-- 将父元素作为参数 -->
    <Button Content="Test Command3" Command="{Binding TestCommand3}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.TemplatedParent}}" >
    

    后台代码:

    this.DataContext = new ViewModel();
    

    ViewModel代码:

    // ViewModel 构造函数
    public ViewModel()
    {    
        CallCOmmand1 = new DelegateCOmmmand(Call1);
        CallCOmmand2 = new DelegateCOmmmand<Object>(Call2);
        CallCOmmand3 = new DelegateCOmmmand<Object>(Call3);
    }
    
    // 命令声明
    public DelegateCommand CallCommand { get; private set; }
    public DelegateCommand<Object> CallCommand2 { get; private set; }
    public DelegateCommand<Object> CallCommand3 { get; private set; }
    
    // 命令实现
    public void Call1()
    {
    }
    
    public void Call2( Object obj )
    {
        Button button = obj as Button;
    }
    
    public void Call3( Object obj )
    {
        ParentType parent = obj as ParentType;
    }
    

      

      

      

  • 相关阅读:
    AxMIMS系统开发环境搭建
    基于霍夫变换的点云分割方法
    微惯性导航系统
    “导航技术”学习笔记
    Kalman滤波学习
    Cell complex单元复形
    矩阵与欧拉角的转换
    CGAL4.10 / CGAL4.13编译
    [OpenCV]代码整理
    KinectFusion测试
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11315738.html
Copyright © 2011-2022 走看看