WPF MVVM模式开发简明实现教程 3 事件绑定

事件绑定有至少两种方法

这里只会讲这两种,其他方法请自行研究

  1. CallMethodAction

View:

<Button Content="{Binding ButtonContent}" x:Name="button" >

            <b:Interaction.Triggers>

                <b:EventTrigger EventName="Click" >

                    <b:CallMethodAction TargetObject="{Binding}" MethodName="Button_Click" />

                </b:EventTrigger>

            </b:Interaction.Triggers>

     </Button>

  

 

ViewModel:

public void Button_Click(object sender, RoutedEventArgs e)

    {

    }

 

这种方式简单,还可以带有事件e,对一些mouse等事件很有用

 

  1. InvokeCommandAction

View:

<b:Interaction.Triggers>

                <b:EventTrigger EventName="Click" >

                    <b:InvokeCommandAction Command="{Binding MapViewExport_Click}" CommandParameter="{Binding ElementName=button}" />

                </b:EventTrigger>

   </b:Interaction.Triggers>

 

ViewModel:

private ICommand button_Click;

        /// <summary>

        /// 按钮点击事件

        /// </summary>

        public ICommand Button_Click
        {
            get
            {
                if (button_Click == null)
                {
                    button_Click = new BaseCommand((param) =>
                    {
                        Button button = param as Button;

                        //....

                    });

                }

                return button_Click;
            }
        }

  

注意如果View里没CommandParameter,ViewModel里就没有param

这种适合传递一个参数的

WPF MVVM模式开发简明实现教程 3 事件绑定

上一篇:如何进行API测试以提高程序质量


下一篇:WPF MVVM模式开发实现简明教程 3-1 BaseCommand