2011-06-23 37 views
0

我有一个WPF工具包DataGrid ItemsSource属性绑定到DataTable。 DataTable在其中一列上有一个唯一的约束。如果我尝试在列中输入非唯一数据,则会从我无法访问的代码区域引发异常(这很好),然后应用程序崩溃(这很糟糕)。如何处理此异常?

如何捕获或以其他方式导致此异常被处理,以便应用程序不会崩溃?

+1

请问您能展示一些代码吗?你是否也能捕捉到这个例外,你在catch语句中做了什么 – Hasanain

+0

@Hananain,你想看什么代码?不,我不明白这个例外,但我想 - 因此是一个问题。 –

+0

假设你有一个你没有源代码的库/ dll,异常冒泡到你的代码中...所以你可以显示代码,至于你在哪里/如何使用dataTable ... – Hasanain

回答

0

我已经解决了这个问题,在DataGrid上为CellEditEnding事件添加了一种验证。如果验证失败,我将e.Cancel设置为true

这可能不是正确的方法去解决这个问题,但它有最终的结果。

+0

这是一种可行的解决方法。如果您从DataTable转移到对象数据中,则可以将您的数据类设置为实现IDataErrorInfo并使用它来执行验证。 WPF使用得非常好,出错时,您可以显示一个ValidationErrorTemplate项,修改控件以向用户提供有关如何正确编辑字段/属性的信息。查看 – CodeWarrior