WPF数据绑定中的异常处理

假设我在WPF应用程序中有以下代码:

try
{
   // NorthwindDataContext is LINQ DataContext created for SQL Server Northwind database
   Data.NorthwindDataContext data = new Data.NorthwindDataContext(connectionString);

   var orders = from order in Data.Orders select order;

   listView.DataContext = orders;
}
catch (SqlException ex)
{
   MessageBox.Show(ex.Message);
}

如果connectionString不正确,则此代码不会立即抛出SqlException。 取而代之,当WPF数据绑定开始枚举LINQ查询时,抛出异常。 应用程序崩溃,未处理的异常。 在这种情况下如何处理异常?

我知道全局异常处理是可能的,但是我想要更精确的方法,它允许在执行特定函数时捕获特定的异常。


这是Linq诅咒,而不是数据绑定。

您的查询已编译但未运行 - 您绑定的查询不是结果。 更改为以下代码:

var orders = from order in Data.Orders select order;
var realOrders = orders.ToList();
listView.DataContext = realOrders ;

基本上,您的存储库必须始终返回结果而不是原始查询。

链接地址: http://www.djcxy.com/p/51229.html

上一篇: Exception handling in WPF data binding

下一篇: How do I recover after problem in WPF OnRender