Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BindingGroup中的WPF清除验证_Wpf_Validation_Binding - Fatal编程技术网

BindingGroup中的WPF清除验证

BindingGroup中的WPF清除验证,wpf,validation,binding,Wpf,Validation,Binding,我有一个名为Contact的类,它有两个字符串属性:“Name”和“PhoneNumber” 我的ViewModel有这些联系人的一个可观察的集合,并且有一个组合框将其ItemsSource绑定到此集合 我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。此网格有一个BindingGroup,其中包含一个ValidationRule,用于验证我的“contact”类的文本属性 这是我的网格: <Grid x:Name="ContainerGri

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

我的ViewModel有这些联系人的一个可观察的集合,并且有一个组合框将其ItemsSource绑定到此集合

我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。此网格有一个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

听起来您需要在您的
联系人
类和视图模型上实现,和/或在视图模型中使用而不是
列表
。它们都有助于从代码隐藏或视图模型更新数据更改的UI。感谢您的回复,但我已经为我的联系人类实现了INotifyPropertyChanged接口。要解决此问题,我必须在删除无效联系人后调用验证UI的方法。