【发布时间】:2011-05-11 10:14:33
【问题描述】:
我的模型不在 EF 中,而是在纯文本中。我必须为模型的每个属性处理更新的事件,以便我可以记录它们的更改。
有没有办法做到这一点。
【问题讨论】:
标签: asp.net-mvc-2
我的模型不在 EF 中,而是在纯文本中。我必须为模型的每个属性处理更新的事件,以便我可以记录它们的更改。
有没有办法做到这一点。
【问题讨论】:
标签: asp.net-mvc-2
一个简单的例子:
using System.ComponentModel;
public class MyModel : INotifyPropertyChanged
{
string _myProperty;
public event PropertyChangedEventHandler PropertyChanged;
public string MyProperty
{
get { return _myProperty; }
set
{
_myProperty = value;
NotifyPropertyChanged("MyProperty");
}
}
public void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}
你可以像...一样使用它
public class Test
{
public static void Main()
{
var model = new MyModel();
model.PropertyChanged += new PropertyChangedEventHandler(LogChange);
model.MyProperty="apples";
model.MyProperty="oranges";
model.MyProperty="pears";
}
public static void LogChange(object sender, PropertyChangedEventArgs args)
{
Console.WriteLine(args.PropertyName + " has changed!");
Console.WriteLine("New value: "
+ sender.GetType().GetProperty(args.PropertyName)
.GetValue(sender, null));
}
}
【讨论】: