如何在字符串索引器数据绑定上实现IDataErrorInfo?
使用xaml(注意字典条目属性[欢迎]上的绑定):
<Grid x:Name="LayoutRoot"> <StackPanel> <TextBlock FontSize="36" FontWeight="Bold" Foreground="Purple" Text="{Binding Attributes[Welcome]}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" /> <TextBox Text="{Binding Attributes[Welcome],Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox> <TextBox Text="{Binding Attributes[Welcome],Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox> <TextBox Text="{Binding Test, Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox> <TextBox Text="{Binding Test, Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox> </StackPanel> </Grid>当视图模型将IDataErrorInfo实现为:
public string Error
{
get { return ""; }
}
public string this[string columnName]
{
get {
return "Compulsory Error";
}
}
只有columnName ==“测试”通过。 因此我得到以下应用程序:
我如何验证为“属性字典”设置的值?
我想我需要在Dictionary上实现IDataErrorInfo而不是包含字典的视图模型。 但是,由于IDataErrorInfo成员与IDicitonary发生冲突。 我结束了实现INotifyDataErrorInfo。
而不是使用字典,更多的“MVVMish”方式是为您要在列表中显示的项目创建一个简单的ViewModel。 然后将它们添加到列表(而不是字典)并绑定到这些项目。 然后,您可以在这些ViewModel上实现IDataErrorInfo(以及任何其他自定义逻辑或您需要的任何其他内容)。
链接地址: http://www.djcxy.com/p/44621.html上一篇: How to implement IDataErrorInfo on string indexers databinding?