zoukankan      html  css  js  c++  java
  • wpf自定义Mvvm框架

    1.DelegateCommand.cs

     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 Action<object> ExecuteAction { get; set; }
    37         public Func<object, bool> CanExecuteFunc { get; set; }
    38     }
    39 }

    2。NotificationObject.cs

     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 }
  • 相关阅读:
    【BestCoder #48】
    【一场模拟赛?】
    【普通の随笔】6.30
    【BestCoder #45】
    【BestCoder #44】
    【普通の惨败】GDOI2015卖萌记
    我的新博客
    【BZOJ 2964】Boss单挑战
    【NOI 2015】软件包管理器
    【NOI 2015】程序自动分析
  • 原文地址:https://www.cnblogs.com/sclu/p/12177491.html
Copyright © 2011-2022 走看看