zoukankan      html  css  js  c++  java
  • wpf 事件参数 绑定到viewmdoel

    public sealed class EventCommand : TriggerAction<DependencyObject>
        {
    
            public static readonly DependencyProperty CommandParameterProperty =
                DependencyProperty.Register("CommandParameter", typeof(object), typeof(EventCommand), null);
    
    
            public static readonly DependencyProperty CommandProperty = DependencyProperty.Register(
                "Command", typeof(ICommand), typeof(EventCommand), null);
    
    
            public static readonly DependencyProperty InvokeParameterProperty = DependencyProperty.Register(
                "InvokeParameter", typeof(object), typeof(EventCommand), null);
    
            private string commandName;
    
            public object InvokeParameter
            {
                get
                {
                    return this.GetValue(InvokeParameterProperty);
                }
                set
                {
                    this.SetValue(InvokeParameterProperty, value);
                }
            }
    
    
            public ICommand Command
            {
                get
                {
                    return (ICommand)this.GetValue(CommandProperty);
                }
                set
                {
                    this.SetValue(CommandProperty, value);
                }
            }
    
            public string CommandName
            {
                get
                {
                    return this.commandName;
                }
                set
                {
                    if (this.CommandName != value)
                    {
                        this.commandName = value;
                    }
                }
            }
    
            public object CommandParameter
            {
                get
                {
                    return this.GetValue(CommandParameterProperty);
                }
    
                set
                {
                    this.SetValue(CommandParameterProperty, value);
                }
            }
    
            public object Sender { get; set; }
    
            protected override void Invoke(object parameter)
            {
                this.InvokeParameter = parameter;
                if (this.AssociatedObject != null)
                {
                    ICommand command = this.Command;
                    if ((command != null) && command.CanExecute(this.CommandParameter))
                    {
                        command.Execute(this.CommandParameter);
                    }
                }
            }
        }
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Drop">
            <cmds:EventCommand CommandName="DropCommand" 
            CommandParameter="{Binding RelativeSource={RelativeSource Self},         Path=InvokeParameter}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>    
    

      

  • 相关阅读:
    设计模式 5 —— 工厂模式
    Java 集合系列 14 hashCode
    Java 集合系列 13 WeakHashMap
    java 多线程——quartz 定时调度的例子
    memcached 学习 1—— memcached+spring配置
    vivado SDK之找不到"platform.h"
    ubuntu上第一个hello程序
    FPGA设计中的异步复位、同步释放思想
    异步fifo的Verilog实现
    zedboard上首个驱动实践——Led
  • 原文地址:https://www.cnblogs.com/nocanstillbb/p/9900016.html
Copyright © 2011-2022 走看看