2011-05-11 1 views

Répondre

1

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)); 
    } 
} 
+0

est-ce possible d'utiliser avec le ASP.NET MVC 2 également. Je n'utilise pas Entity Framework. – Saravanan

+0

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

+0

Merci beaucoup pour votre exemple. C'était vraiment utile. Je prévoyais d'implémenter ce type de fonctionnalité. – Saravanan

Questions connexes