我从 MVVM 开始。
我的应用程序使用这种“模式(PM 模式——我们不要在这里讨论这个:))”并且工作正常;该项目非常简单,据说对于初学者来说很容易掌握!如果只是... :)
有一件事让我感到困惑,这可能与 MVVM 本身无关;PropertyChangedEventHandler。
我正在逐行浏览我的代码,并且可以看到调用(下面的代码),但我不确定我为什么要调用这个处理程序或它在做什么!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Windows.Input;
namespace drMVVM.Model
{
public class TextContent : INotifyPropertyChanged
{
private string text;
public string Text
{
get { return text; }
set
{
if (text != value)
{
text = value;
OnPropertyChanged("Text");
}
}
}
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
}
我的视图模型也有类似的代码布局,但不是设置属性,而是创建对象的实例并应用任何其他逻辑。
PropertyChangedEventArgs 是否仅用于更新已更改的模型的属性?如果是这样,为什么它是在模型类中实现的,而不仅仅是 ModelView?是因为它可以本能地知道是只听变化还是提供细节通知发生变化?如果它是一个通知(我假设因此是接口的名称),那么我在我的 Model 类中通知什么?