Обновлять родительский элемент всякий раз, когда элемент управления изменяет значение в WPF - PullRequest
1 голос
/ 15 февраля 2012

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

В настоящее время я использую мой вид, но мне нужно добавить вызов к каждому свойству при его изменении. Это нормально, но для полей редактирования это означает, что пользователь должен уйти, прежде чем кнопка сохранения станет активной.

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Если вы связываете свой вид с моделью представления, то у вас может быть флаг IsDirty внутри модели представления, который будет устанавливаться каждый раз, когда вы запускаете событие PropertyChanged

    protected void FirePropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        _isDirty = true;
        if(handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

Затем свяжите свою кнопку с IsDirty

1 голос
/ 15 февраля 2012

Самый простой способ - создать логическое свойство IsDirty, которое изменяется при каждом изменении значения. Соедините свойство IsEnabled кнопки сохранения с логическим значением IsDirty.

Если вы хотите отсоединиться от класса, используйте событие / уведомление.

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