WPF MVVM通用封装库

本文介绍了一个用于WPF MVVM的通用封装库,包括DelegateCommand、ModelBase、RelayCommand和ViewModelBase的封装,简化了MVVM的使用。只需简单引用,即可在工程中方便地应用MVVM模式。
摘要由CSDN通过智能技术生成

WPF MVVM通用封装库

把MVVM的命令等作为封装库,只需要在工程中引用该库就可以轻松使用MVVM的框架,一劳永逸。
该封装库使从老工程师那里继承而来,个人觉得是个非常好的代码,或者说是好的工具,在这里做一个分享。

1、DelegateCommand封装类

using System;
using System.Windows.Input;

namespace MVVM
{
   
    public class DelegateCommand : ICommand
    {
   
        #region Fields

        readonly Action<object> execute;
        readonly Predicate<object> canExecute;

        #endregion

        #region Constructors

        public DelegateCommand(Action<object> execute)
            : this(execute, null)
        {
   
        }

        public DelegateCommand(Action<object> execute, Predicate<object> canExecute)
        {
   
            if (execute == null)
                throw new ArgumentNullException("execute");

            this.execute = execute;
            this.canExecute = canExecute;
        }

        #endregion

        #region ICommand Members

        public bool CanExecute(object parameter)
        {
   
            return canExecute == null || canExecute(parameter);
        }
        public event EventHandler CanExecuteChanged;

        // The CanExecuteChanged is automatically registered by command binding, we can assume that it has some execution logic 
        // to update the button's enabled\disabled state(though we cannot see). So raises this event will cause the button's state be updated.
        public void RaiseCanExecuteChanged()
        {
   
            if (CanExecuteChanged != null)
                CanExecuteChanged(this, EventArgs.Empty);
        }

        public void Execute(object parameter)
        {
   
            execute(parameter);
        }

        #endregion
    }
}

2、ModelBase封装类

using System;
using System.ComponentModel;
using System.Linq.Expressions;

namespace MVVM
{
   
    public class ModelBase : INotifyPropertyChanged
    {
   
        public <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hlpinghcg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值