Implémentez l'interface INotifyPropertyChanged.
Un exemple simple:
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));
}
}
}
Vous pouvez l'utiliser comme ...
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));
}
}
est-ce possible d'utiliser avec le ASP.NET MVC 2 également. Je n'utilise pas Entity Framework. – Saravanan
Oui, vous pouvez utiliser comme vous le souhaitez. Tout ce que vous faites est de vous abonner à un événement que votre modèle déclenche quand une propriété est mise à jour. J'ai ajouté un exemple simple ci-dessus. – fearofawhackplanet
Merci beaucoup pour votre exemple. C'était vraiment utile. Je prévoyais d'implémenter ce type de fonctionnalité. – Saravanan