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 }
  • 相关阅读:
    Win10
    编码
    [转帖] Tomcat安全配置小技巧
    关于redis bind
    query data filtered by a JSON Column in SQLAlchemy
    Flask多线程环境下logging
    Flask request
    [转] MySQL树结构递归查询处理
    [转]了解BFF架构
    转载:ELK实战系列3-RabbitMQ+ELK搭建日志平台
  • 原文地址:https://www.cnblogs.com/sclu/p/12177491.html
Copyright © 2011-2022 走看看