WPF中MVVM使用总结

背景:PropertyChanged和Command总是没有记住怎么写

PropertyChanged:

public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

RelayCommand:

public class RelayCommand : ICommand
{
    private readonly Action<object> _execute;
    private readonly Predicate<object> _canExecute;

    public RelayCommand(Action<object> execute, Predicate<object> canExecute = null)
    {
        _execute = execute ?? throw new ArgumentNullException(nameof(execute));
        _canExecute = canExecute;
    }

    public bool CanExecute(object parameter)
    {
        return _canExecute == null || _canExecute(parameter);
    }

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

    public event EventHandler CanExecuteChanged
    {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }
}

相关推荐

  1. WPFMVVM使用总结

    2024-01-05 15:18:03       42 阅读
  2. WPF 结合 MVVM模式下SqlSugar ORM框架的使用

    2024-01-05 15:18:03       32 阅读
  3. 关于WPF MVVM 的详细使用过程以及注意的问题

    2024-01-05 15:18:03       26 阅读
  4. WPF 界面命令绑定(MVVM结构)

    2024-01-05 15:18:03       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 15:18:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 15:18:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 15:18:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 15:18:03       18 阅读

热门阅读

  1. 【WPF.NET开发】WPF中的焦点

    2024-01-05 15:18:03       33 阅读
  2. 面试 Vue 框架八股文十问十答第二期

    2024-01-05 15:18:03       43 阅读
  3. onvif学习记录

    2024-01-05 15:18:03       42 阅读
  4. 测试:抓包工具

    2024-01-05 15:18:03       40 阅读
  5. 【2024.01.02】刷算法07

    2024-01-05 15:18:03       33 阅读
  6. Linux 命令汇总

    2024-01-05 15:18:03       32 阅读