INotifyPropertyChanging и проверки: когда я повышаю PropertyChanging?

Ваш код никогда не будет работать. Вам нужен экземпляр вашего объекта для выполнения метода. Что-то вроде:

    Type model = AssemblyHelper.GetTypeByClassName(Assembly.GetExecutingAssembly(), modelName + MappingColums.Tokens.Validation);

    MethodInfo method = model.GetMethod(MappingColums.Tokens.Get + modelName);

    myClass myObject = new myObject();

    object result = method.Invoke(myObject , null);
11
задан Hamish Smith 4 October 2008 в 05:53
поделиться

3 ответа

Если Вашему объекту дают значение, которое недопустимо для свойства, и Вы выдаете исключение затем, Вы не должны повышать PropertyChanging событие. Необходимо только сгенерировать событие, когда Вы решили, что значение изменится. Типичный сценарий использования для изменения простого поля:

public T Foo
 { get
    { return m_Foo;
    }
   set
    { if (m_Foo == value) return; //no need for change (or notification)
      OnPropertyChanging("Foo");
      m_Foo = value;
      OnPropertyChanged("Foo");
    }
 }
13
ответ дан 3 December 2019 в 08:31
поделиться

Как в стороне - PostSharp имеет интересную способность автореализовать INotifyPropertyChanged - как так.

1
ответ дан 3 December 2019 в 08:31
поделиться

Если требуется постараться не реализовывать INotifyPropertyChanged в целом, рассмотрите использование Средств управления Обновлением.NET вместо этого. Это устраняет почти весь бухгалтерский код.

0
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: