Как и почти все остальное в WPF, это проще, если вы используете привязку данных.
Свяжите текстовое поле со свойством класса. По умолчанию привязки обновляют источник, когда связанный элемент управления теряет фокус, поэтому вам не нужно возиться с событием LostFocus
. Затем у вас есть доступ как к новому значению, так и к значению, которое пользователь ввел в установщике свойств.
В XAML это выглядит так:
<TextBox Text="{Binding MyProperty, Mode=TwoWay}"/>
В классе это выглядит так:
private string _MyProperty;
public string MyProperty
{
get { return _MyProperty; }
set
{
// at this point, value contains what the user just typed, and
// _MyProperty contains the property's previous value.
if (value != _MyProperty)
{
_MyProperty = value;
// assuming you've implemented INotifyPropertyChanged in the usual way...
OnPropertyChanged("MyProperty");
}
}