如何用WPF实现一个最简单的Mvvm示例

时间:2026-02-16 12:12:59

1、创建一个 ViewModelBase

public abstract class ViewModelBase : INotifyPropertyChanged{

    //属性改变事件

    public event PropertyChangedEventHandler PropertyChanged;

   

    //当属性改变的时候,调用该方法来发起一个消息,通知View中绑定了propertyName的元素做出调整

    public void RaisePropertyChanged(string propertyName)

    {

        PropertyChangedEventHandler handler = PropertyChanged;

        if (handler != null)

        {

            handler(this, new PropertyChangedEventArgs(propertyName));

        }

    }

}

2、创建一个DelegateCommand

public class DelegateCommand : ICommand{

    readonly Action<object> _execute;

    readonly Predicate<object> _canExecute;

  

    public DelegateCommand(Action<object> execute)

        : this(execute, null)

    {

    }

    public DelegateCommand(Action<object> execute, Predicate<object> canExecute)

    {

        if (execute == null)

            throw new ArgumentNullException("execute");

        _execute = execute;

        _canExecute = canExecute;

    }

    public void Execute(object parameter)

    {

        _execute(parameter);

    }

    public bool CanExecute(object parameter)

    {

        return _canExecute == null ? true : _canExecute(parameter);

    }

    public event EventHandler CanExecuteChanged

    {

        add { CommandManager.RequerySuggested += value; }

        remove { CommandManager.RequerySuggested -= value; }

    }

}

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com