Как используется PropertyChangedEventHandler? - PullRequest
3 голосов
/ 03 декабря 2010

Как используется PropertyChangedEventHandler?Можете ли вы сказать мне, что делает этот фрагмент кода в методе Initalize класса?В проекте, над которым мы работаем, есть класс, у которого есть собственный метод Initialize.И в этом методе есть немного кода, который я хочу обсудить.
Но сначала позвольте мне описать класс.Класс определяется следующим образом: открытый класс Skoobie: BaseThingy, ISkoobie

Итак, это означает, что у класса «Скуби» есть два родителя, от которых он наследует.Каковы все последствия этого?

В любом случае, метод Initalize выглядит примерно так:

private void Initialize()
{
            this.PropertyChanged += (o, e) =>
                {
                     If (e != null)
                     {
                        // some stuff is done
                     }

                };
}

Теперь «PropertyCHanged» является членом родительского класса «BaseThingy», которыйопределяется следующим образом:

публичное событие PropertyChangedEventHandler PropertyChanged;Что это за код this.PropertyChanged + = (o, e) => ... все о?Это что-то вроде LINQ?

1 Ответ

4 голосов
/ 03 декабря 2010

Это лямбда-выражение (http://msdn.microsoft.com/en-us/library/bb397687.aspx), которое добавляется к событию PropertyChanged.
Это событие определено в интерфейсе INotifyPropertyChanged: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx
Это событие имеет фундаментальное значение для таких вещей, как привязка данных в WPF / Silverlight. Вы бы использовали его для установки объекта данных как грязного. Надеюсь это поможет.

Также для открытого класса Skoobie: BaseThingy, ISkoobie C # не имеет множественного наследования. Однако вы можете реализовать несколько интерфейсов (в вашем случае ISkoobie - это интерфейс, а BaseThingy - это базовый класс)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...