如何在字符串索引器数据绑定上实现 IDataErrorInfo?

bas*_*rat 5 silverlight wpf mvvm

使用 xaml(注意字典条目 Attributes[Welcome] 上的绑定):

    <Grid x:Name="LayoutRoot">
        <堆栈面板>
            <TextBlock FontSize="36"
                   字重=“粗体”
                   前景=“紫色”
                   Text="{绑定属性[欢迎]}"
                   垂直对齐=“中心”
                   水平对齐=“中心”
                   TextWrapping="Wrap" />
            <TextBox Text="{绑定属性[欢迎],Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox>
            <TextBox Text="{绑定属性[欢迎],Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox>
            <TextBox Text="{Binding Test, Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox>
            <TextBox Text="{Binding Test, Mode=TwoWay, ValidatesOnDataErrors=True}"></TextBox>
        </堆栈面板>
    </网格>
当视图模型将 IDataErrorInfo 实现为:


        public string Error
        {
            get { return ""; }
        }

        public string this[string columnName]
        {
            get { 
                return "Compulsory Error"; 
            }
        }


只有 columnName == "Test" 被通过。因此我得到以下应用程序: 在此处输入图片说明
如何验证为属性字典设置的值?

bas*_*rat 1

我认为我需要在字典上实现 IDataErrorInfo 而不是包含字典的视图模型。但由于 IDataErrorInfo 成员与 IDicitonary 冲突。我最终实现了 INotifyDataErrorInfo。