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;
    }
    

      

      

      

  • 相关阅读:
    归并排序
    堆排序
    数组数据生成器
    冒泡排序
    快速排序
    希尔排序
    排序接口与抽象类(java)
    Pycharm下HTMLTestRunner不生成测试报告
    抓包工具使用记录
    接口学习笔记
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11315738.html
Copyright © 2011-2022 走看看