wpf自定义Mvvm框架
2021-01-18 12:33
标签:command parameter imp handle dem thread return tar func 1.DelegateCommand.cs 2。NotificationObject.cs wpf自定义Mvvm框架 标签:command parameter imp handle dem thread return tar func 原文地址:https://www.cnblogs.com/sclu/p/12177491.html 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.Windows.Input;
7
8 namespace SimpleMvvmDemo.Commands
9 {
10 class DelegateCommand : ICommand
11 {
12
13 public event EventHandler CanExecuteChanged;
14
15 public bool CanExecute(object parameter)
16 {
17 // throw new NotImplementedException();
18 if(this.CanExecuteFunc==null)
19 {
20 return true;
21 }
22 this.CanExecuteFunc(parameter);
23 return true;
24 }
25
26 public void Execute(object parameter)
27 {
28 //throw new NotImplementedException();
29 if(this.ExecuteAction==null)
30 {
31 return;
32 }
33 this.ExecuteAction(parameter); //命令->Execute->Execute指向的方法
34 }
35
36 public Actionobject> ExecuteAction { get; set; }
37 public Funcobject, bool> CanExecuteFunc { get; set; }
38 }
39 }
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Linq;
5 using System.Text;
6 using System.Threading.Tasks;
7
8 namespace SimpleMvvmDemo.viewmodel
9 {
10 //viewmodel的基类
11 class NotificationObject : INotifyPropertyChanged
12 {
13 public event PropertyChangedEventHandler PropertyChanged;
14 public void RaisePropertyChanged(string propertyName)
15 {
16 if(this.PropertyChanged!=null)
17 {
18 //binding监控changed
19 this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
20 }
21 }
22 }
23 }