DataGrid Validation.Error未调用

时间:2011-10-22 23:08:04

标签: wpf validation binding datagrid

当SelectedItem.DT抛出错误时,不会调用Validation_Error? DT是来自SQL查询的DataTable,如果TSQL失败,我想显示SQL错误。我想我可以构建一个DataTable并将ex.msg放在表中。但我宁愿调用Validation_Error。

    <DataGrid Grid.Row="1" Grid.Column="0" AutoGenerateColumns="True"  
              ItemsSource="{Binding ElementName=cbReports, Path=SelectedItem.DT, ValidatesOnExceptions=True, NotifyOnValidationError=True, NotifyOnSourceUpdated=True}"
              Validation.Error="Validataion_Error" />

当在集合中抛出错误时,此TextBox(在另一页面上)会调用Validation_Error。

    <TextBox Text="{Binding Path=DF.FieldValue, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True}"
             Validation.Error="Validataion_Error"/>

1 个答案:

答案 0 :(得分:0)

DataTable未实现IDataErrorInfo,因此不会自动为您执行任何验证错误。我总是将DataTable转换为实现IDataErrorInfo的类的ObservableCollection

public class MyClass : IDataErrorInfo
{
    //..
}

// Use ObservableCollection instead of DataTable
ObservableCollection<MyClass> MyDataGridItemsSource { get; set; }

我猜你的DF中文本框绑定工作的原因DF.FieldValue是实现IDataErrorInfo