我有一个带有许多文本框的网格,我想打电话 NotifyPropertyChanged() 每次这些TextBox-es中的一个更新其他控件的方法都会更改值=丢失焦点(我不要 使用 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