реагируя на изменения свойств модели в asp.net mvc2 - PullRequest
2 голосов
/ 11 мая 2011

У меня модель не в EF, а в текстовом формате.Мне нужно обработать обновленные события для каждого из свойств модели, чтобы я мог регистрировать их изменения.

Есть ли способ для этого.

1 Ответ

1 голос
/ 11 мая 2011

Реализация интерфейса INotifyPropertyChanged .

Простой пример:

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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...