WPFMVVM模式 BaseViewModel

引用

在使用BaseViewModel时需要引用以下包:

using System.ComponentModel;
using System.Runtime.CompilerServices;

另外,如果在使用BaseViewModel时需要使用到异步编程(如使用async和await关键字),还需要引用以下包:

using System.Threading.Tasks;

BaseViewModel

BaseViewModel 是一个通用的基础类,通常用作 WPF/MVVM 架构中 ViewModel 的基类,其主要作用是提供了一些常用的功能和属性,以减少在具体 ViewModel 中的代码量,提高代码的复用性。

下面是一个简单的 BaseViewModel 示例:

public class BaseViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

该 BaseViewModel 类实现了 INotifyPropertyChanged 接口,以支持 WPF 数据绑定机制。同时,提供了 RaisePropertyChanged 方法,用于通知数据绑定系统属性值的更改。使用 CallerMemberName 特性可以避免手动输入属性名称,减少出错的概率。

在具体的 ViewModel 类中,只需要继承该 BaseViewModel 类即可使用这些通用的属性和方法,例如:

public class LoginViewModel : BaseViewModel
{
    private string _username;
    public string Username
    {
        get => _username;
        set
        {
            _username = value;
            RaisePropertyChanged();
        }
    }
}

该 LoginViewModel 类继承了 BaseViewModel 类,并实现了一个字符串类型的 Username 属性,通过调用 RaisePropertyChanged 方法通知数据绑定系统属性值的更改。


总之,BaseViewModel 类可以帮助我们避免重复编写一些重复的代码,提高代码的可读性和可维护性。

你可能感兴趣的:(WPF学习笔记,wpf)