我有一个WPF工具包DataGrid ItemsSource
属性绑定到DataTable
。 DataTable在其中一列上有一个唯一的约束。如果我尝试在列中输入非唯一数据,则会从我无法访问的代码区域引发异常(这很好),然后应用程序崩溃(这很糟糕)。如何处理此异常?
如何捕获或以其他方式导致此异常被处理,以便应用程序不会崩溃?
我有一个WPF工具包DataGrid ItemsSource
属性绑定到DataTable
。 DataTable在其中一列上有一个唯一的约束。如果我尝试在列中输入非唯一数据,则会从我无法访问的代码区域引发异常(这很好),然后应用程序崩溃(这很糟糕)。如何处理此异常?
如何捕获或以其他方式导致此异常被处理,以便应用程序不会崩溃?
我已经解决了这个问题,在DataGrid
上为CellEditEnding
事件添加了一种验证。如果验证失败,我将e.Cancel
设置为true
。
这可能不是正确的方法去解决这个问题,但它有最终的结果。
这是一种可行的解决方法。如果您从DataTable转移到对象数据中,则可以将您的数据类设置为实现IDataErrorInfo并使用它来执行验证。 WPF使用得非常好,出错时,您可以显示一个ValidationErrorTemplate项,修改控件以向用户提供有关如何正确编辑字段/属性的信息。查看 – CodeWarrior
请问您能展示一些代码吗?你是否也能捕捉到这个例外,你在catch语句中做了什么 – Hasanain
@Hananain,你想看什么代码?不,我不明白这个例外,但我想 - 因此是一个问题。 –
假设你有一个你没有源代码的库/ dll,异常冒泡到你的代码中...所以你可以显示代码,至于你在哪里/如何使用dataTable ... – Hasanain