WPF TextBox Lostfocus в качестве прилагаемого свойства
-
29-09-2019 - |
Вопрос
У меня есть сетка со многими текстовыми коробками, и я хочу позвонить 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
Если вышеизложенное не работает в разметке.