У меня есть очень простой класс, который имеет одно свойство и которое наследует INotifyPropertyChanged:Инстанцирование класс, который наследует INotifyPropertyChanged
class SimpleClass:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _property;
public string Property
{
get { return _property; }
set
{
_property = value;
PropertyChanged(this, new PropertyChangedEventArgs"Property"));
}
}
}
Я пытаюсь создать экземпляр объекта SimpleClass в конструкторе для WPF окна, но я получаю после TargetInvocationException: «Исключение выбрано целью вызова». Если я удалю наследование INotifyPropertyChange (и любую ссылку на событие PropertyChanged), то я не получаю ошибку, и мой проект работает без каких-либо проблем. Любые идеи почему?
Приветствия
Да хороший улов. это будет исключение, вызванное тем, что листеры являются нулевыми. – Dessus
Спасибо! Кстати, почему вы использовали слушателей, а не PropertyChanged, как ответ Криса Шаина ниже? – SuMau
это очень распространенный шаблон, даже msdn *, как реализовать ... * делает это так: http://msdn.microsoft.com/en-us/library/ms743695.aspx. Я * слышал *, что если вы делаете многопоточность, свойство PropertyChanged * может * меняться между 'if' и блоком кода внутри. локальное значение не может. –