WPF MVVM模式开发简明实现教程 3 事件绑定
WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged
WPF MVVM模式开发实现简明教程 3-1 BaseCommand
WPF MVVM模式开发实现简明教程 4 ViewModelBase
WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定
WPF MVVM模式开发简明实现教程 7 DevExpress MVVM
事件绑定有至少两种方法
这里只会讲这两种,其他方法请自行研究
- 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等事件很有用
- 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
这种适合传递一个参数的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架