2010-05-21 68 views
1

我们正在使用MVVM实现WPF业务应用程序。目前我们正在尝试确定为DataGrid显示验证错误的最佳方式。目前,我们正在努力这样做是这样的:WPF DataGrid - 验证建议

1)查看用户控件包含绑定到位于关联的视图模型

2)视图模型implments的IDataErrorInfo的接口实体框架对象的EntityCollection一个DataGrid。在视图模型也有正常的特性包括用于实现IDataErrorInfo.Item

3)实现IDataErrorInfo.Item要求从底层模型验证,以确定是否有任何验证问题

该作品的属性的属性罚款的任何文本框或视图上的组合框 - validatiosn正在按预期处理。但是对于数据网格,我们很难过 - 无论我们尝试过什么,验证都不会发生。目前它是这样定义的:

<DataGrid x:Name="dgWikiNames" ItemsSource="{Binding Wiki_Names, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnSourceUpdated=True}" AutoGenerateColumns="False"> 
         <DataGrid.RowValidationRules> 
          <DataErrorValidationRule ValidationStep="UpdatedValue"/>        
         </DataGrid.RowValidationRules> 
         <DataGrid.Columns> 
          <DataGridTextColumn Header="First Name"> 
           <DataGridTextColumn.Binding> 
            <Binding Path="First_Name" ValidatesOnDataErrors="True"> 
             <Binding.ValidationRules> 
              <DataErrorValidationRule/> 
              <!--<local:CellDataInfoValidationRule ValidationStep="UpdatedValue"/>--> 
             </Binding.ValidationRules> 
            </Binding> 
           </DataGridTextColumn.Binding> 
          </DataGridTextColumn> 
          <DataGridTextColumn Header="Is Primary" Binding="{Binding Primary_Flag}"/> 
         </DataGrid.Columns> 
        </DataGrid> 

如果任何人有任何指示或建议,我们将不胜感激。 感谢

回答

1

以下内容添加到您的绑定:

ValidatesOnDataErrors="True" NotifyOnValidationError="True"