WPF DataGrid - 验证建议

时间:2010-05-21 13:06:51

标签: wpf validation datagrid

我们正在使用MVVM实现WPF业务应用程序。目前,我们正在尝试确定显示DataGrids验证错误的最佳方法。目前我们正试图这样做:

1)View用户控件包含绑定到位于关联ViewModel

中的Entity Framework对象的EntityCollection的数据网格

2)ViewModel包含IDataErrorInfo接口。在ViewModel中,有一些常规属性,包括用于实现IDataErrorInfo.Item

的属性

3)实现IDataErrorInfo.Item的属性从底层模型调用验证以确定是否存在任何验证问题

这适用于视图上的任何文本框或组合框 - validatiosn正在按预期处理。但是对于datagrid,我们感到难过 - 无论我们尝试过什么,都不会发生验证。目前它的定义如下:

<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 个答案:

答案 0 :(得分:1)

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

ValidatesOnDataErrors="True" NotifyOnValidationError="True"