mvvm代码编写中,vm中通常需要包含如上两个接口,提供属性更新通知和错误验证功能。
public class NotifyObject : INotifyPropertyChanged, IDataErrorInfo
{
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
string IDataErrorInfo.Error => error;
private string error;
public Dictionary<string, string> DicError = new Dictionary<string, string>();
public string this[string propertyname]
{
get
{
var vc = new ValidationContext(this, null, null)
{
MemberName = propertyname
};
var res = new List<System.C