У нас было такое же требование к нашему приложению, но некоторые клиенты используют MacO.
MacOs не всегда запускает событие keyup (по крайней мере, в Firefox).
В принятом ответе это становится большой проблемой, поскольку UpdateSourceTrigger установлен в Explicit, но событие никогда не запускается Следствие: вы никогда не обновляете привязку.
Однако событие TextChanged всегда запускается. вместо этого послушайте, и все хорошо :) 1005 *
Вот моя версия:
public class AutoUpdateTextBox : TextBox
{
public AutoUpdateTextBox()
{
TextChanged += OnTextChanged;
}
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
this.UpdateBinding(TextProperty);
}
}
И метод расширения UpdateBinding:
public static void UpdateBinding(this FrameworkElement element,
DependencyProperty dependencyProperty)
{
var bindingExpression = element.GetBindingExpression(dependencyProperty);
if (bindingExpression != null)
bindingExpression.UpdateSource();
}