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

时间:2011-02-08 12:24:38

标签: c# wpf binding validation

我有一个WPF TextBox绑定到对象的(非依赖)属性(实现INotifyPropertyChanged以支持绑定)。

<TextBox x:Name="copyrightsTextBox"
Text="{Binding Path=Copyright, Mode=TwoWay, Converter={StaticResource CopyrightFormattingConverter}, ValidatesOnDataErrors=True}"/>

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

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

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

1 个答案:

答案 0 :(得分:3)

如果文本发生更改,

PropertyChanged会出现文字,因此您可以处理TextChanged事件并手动验证。

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