BindingGroup中的WPF清除验证

时间:2014-02-10 19:04:02

标签: wpf validation binding

我有一个名为Contact的类,它有2个字符串属性:“Name”和“PhoneNumber”。

我的ViewModel有一个可观察的这些联系人集合,并且有一个ComboBox,它的ItemsSource绑定到这个集合。

我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。这个Grid有一个BindingGroup,它包含一个ValidationRule来验证我的“contact”类的文本属性。

这是我的网格:

<Grid x:Name="ContainerGrid" Grid.Column="0"
    Background="Transparent"
    LostFocus="ContainerGrid_LostFocus"
    ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}">
    <Grid.BindingGroup>
        <BindingGroup x:Name="TextInputBindingGroup" SharesProposedValues="True">
            <BindingGroup.ValidationRules>
                <local:TextInputValidationRule />
            </BindingGroup.ValidationRules>
        </BindingGroup>
    </Grid.BindingGroup>
    <StackPanel>
        <TextBlock Text="Name:" />
        <TextBox x:Name="PersonName" Text="{Binding Path=PersonName, ValidatesOnExceptions=True}" />
    </StackPanel>
    <StackPanel>
        <TextBlock Text="Phone Number:" />
        <TextBox x:Name="PhoneNumber" Text="{Binding Path=PhoneNumber, ValidatesOnExceptions=True}" />
    </StackPanel>
</Grid>

如果联系人的数据无效(名称和/或电话号码丢失),则包含用于编辑这些属性的元素的网格将以红色突出显示,并且其工具提示将设置为第一个错误。

如果我然后删除无效的联系人,网格将以红色显示,工具提示显示已删除项目的错误,即使网格现在显示另一个有效项目。

如何清除网格中显示的错误?

谢谢,

-Frinny

0 个答案:

没有答案