视频图像处理系列索引 || Arcgis/Engine/Server开发索引 || Web Map Gis开发索引 || jquery表格组件 JQGrid索引
WPF MVVM模式开发实现简明教程索引 || ArcGIS Runtime WPF(.net C#)开发简明教程索引

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

WPF MVVM模式开发实现简明教程 1 开篇简介 

WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged

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

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

WPF MVVM模式开发实现简明教程 4 ViewModelBase  

WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定 

WPF MVVM模式开发简明实现教程 6 其他绑定  

WPF MVVM模式开发简明实现教程 7 DevExpress MVVM  

WPF MVVM模式开发简明实现教程 8 完结 附全部代码  

 

事件绑定有至少两种方法

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

  1. CallMethodAction

View:

1
2
3
4
5
6
7
8
9
10
11
12
13
<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:

1
2
3
4
5
public void Button_Click(object sender, RoutedEventArgs e)
 
    {
 
    }

 

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

 

  1. InvokeCommandAction

View:

1
2
3
<b:Interaction.Triggers>
         <b:EventTrigger EventName="Click" >
                    <b:InvokeCommandAction Command="{Binding Button_Click}" <br>                            CommandParameter="{Binding ElementName=button}" /> <br>        </b:EventTrigger> <br></b:Interaction.Triggers>

 

ViewModel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private ICommand button_Click2;
 
        public ICommand Button_Click2
        {
            get
            {
                if (button_Click2 == null)
                {
                    button_Click2 = new BaseCommand((param) =>
                    {
                        Button button = param as Button;
 
                        //....
 
                    });
 
                }
 
                return button_Click2;
            }
        }

  

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

这种适合传递一个参数的

posted @   jhlong  阅读(797)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
海龙的博客 jhlong@cnblogs 版权所有© 转载请注明链接.有用请推荐一下
代码全部经过本人测试,但不保证复制粘贴就正常运行,更不保证能解决你的问题,请结合前后代码及描述理解后修改和使用
点击右上角即可分享
微信分享提示