2010-06-23 4 views
3

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

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

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

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

TextBoxBase.OnLostFocus 

ответ

0

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

TextBox.LostFocus="OnTextBoxLostFocus" 

фильтр на текстовые поля;)

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

    //Do stuff 
} 

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

Удачи вам!

0

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

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

+0

Я получаю сообщение об ошибке, что LostFocus не найден в TextBoxBase –

+0

Отредактировано для исправления (извините, не могу проверить здесь). –

+0

Вы не можете установить UIElement как прикрепленное свойство для Grid. –

Смежные вопросы