当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"/>
答案 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
。