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

      

      

      

  • 相关阅读:
    2020 春 学期总结
    计算机科学的咬文嚼字:“并行”与“并发”
    Codeforces 1251E Voting
    Codeforces 1251D Salary Changing
    Asia Jakarta Regional Contest 2019 I
    hdu1007 Quoit Design
    2019春季学期回忆和总结
    bzoj5017 [Snoi2017]炸弹
    我永远讨厌gch文件
    bzoj5102 [POI2018]Prawnicy
  • 原文地址:https://www.cnblogs.com/sntetwt/p/11315738.html
Copyright © 2011-2022 走看看