C# 使用不同的UpdateSourceTrigger进行验证和转换

C# 使用不同的UpdateSourceTrigger进行验证和转换,c#,wpf,binding,validation,C#,Wpf,Binding,Validation,我有一个WPF文本框,它绑定到对象的(非依赖性)属性(实现INotifyPropertyChanged以支持绑定) 验证是通过在绑定对象上实现IDataErrorInfo来完成的 我想在PropertyChanged上进行验证,但仅在LostFocus上进行转换。如何做到这一点(因为只能指定一个UpdateSource触发器) 欢迎任何建议!提前感谢。如果文本发生更改,将发生文本属性更改,因此您可以处理文本更改事件并手动验证 private void TextBox_TextChan

我有一个WPF文本框,它绑定到对象的(非依赖性)属性(实现INotifyPropertyChanged以支持绑定)


验证是通过在绑定对象上实现IDataErrorInfo来完成的

我想在PropertyChanged上进行验证,但仅在LostFocus上进行转换。如何做到这一点(因为只能指定一个UpdateSource触发器)


欢迎任何建议!提前感谢。

如果文本发生更改,将发生文本属性更改
,因此您可以处理
文本更改
事件并手动验证

    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        (sender as TextBox).GetBindingExpression(TextBox.TextProperty).ValidateWithoutUpdate();
    }

是的,但是我想去掉
属性changed
,以避免更新属性(从而转换)。我说过它“会发生”,当然你应该将绑定本身设置为LostFocus(默认)。当然,但是由于绑定属性没有更新,所以会对属性的最后更新值进行验证,而不是输入。真的吗?情况不应该如此。(这种方法也毫无意义)
    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        (sender as TextBox).GetBindingExpression(TextBox.TextProperty).ValidateWithoutUpdate();
    }