【问题标题】:WPF DataGrid - Validation RecommendationsWPF DataGrid - 验证建议
【发布时间】:2011-02-22 08:39:35
【问题描述】:

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

1) View 用户控件包含一个数据网格,该数据网格绑定到位于关联 ViewModel 中的 Entity Framework 对象的 EntityCollection

2) ViewModel 实现了 IDataErrorInfo 接口。在 ViewModel 中有正常的属性,包括用于实现 IDataErrorInfo.Item 的属性

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

这适用于视图上的任何文本框或组合框 - 验证正在按预期进行处理。但是对于数据网格,我们很难过——无论我们尝试了什么,验证都不会发生。目前是这样定义的:

<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>

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

【问题讨论】:

    标签: wpf validation datagrid


    【解决方案1】:

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

    ValidatesOnDataErrors="True" NotifyOnValidationError="True"
    

    【讨论】:

      猜你喜欢
      • 2012-12-09
      • 2018-09-06
      • 2011-09-29
      • 2011-06-29
      • 1970-01-01
      • 2011-05-05
      • 2015-10-15
      • 2011-07-03
      • 1970-01-01
      相关资源
      最近更新 更多