Вопрос

У меня есть сетка со многими текстовыми коробками, и я хочу позвонить NotifyPropertyChanged() Способ обновления некоторых других элементов управления каждый раз, когда один из этих текстовых ящиков изменил значение = потерял фокус (Я не хочу использовать PropertyChanged в виде UpdateSourceTrigger)

Это то, что я могу сделать:

<Grid TextBoxBase.TextChanged="My_TextChanged"  >
...
</Grid>

Мне нужно что-то вроде:

TextBoxBase.OnLostFocus
Это было полезно?

Решение

Используйте событие потерянного фокуса

TextBox.LostFocus="OnTextBoxLostFocus"

Фильтр на текстовых коробках;)

private void OnTextBoxLostFocus(object sender, RoutedEventArgs e)
{
    if(!(e.OriginalSource is TextBox))
        return;

    //Do stuff
}

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

Удачи!

Другие советы

TextBoxBase.LostFocus Есть, я подозреваю, событие, которое вы ищете.

Он указан здесь: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.textboxbase_events.aspx. - но он определен на UIElement - так что вы, возможно, хотите попробовать UIElement.LostFocus Если вышеизложенное не работает в разметке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top