Обработка исключений в привязке данных WPF - PullRequest
0 голосов
/ 02 декабря 2010

Допустим, у меня есть следующий код в приложении 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. Приложение вылетает с необработанным исключением. Как я могу обработать исключение в такой ситуации?

Я знаю, что это возможно при глобальной обработке исключений, но я хочу более точный способ, который позволяет перехватывать конкретное исключение при выполнении определенной функции.

1 Ответ

1 голос
/ 02 декабря 2010

Это проклятие *1001*, а не привязка данных.

Ваш запрос был скомпилирован, но не выполнен - ​​ вы связываете запрос, а не результат .Измените следующий код:

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

Обычно ваш репозиторий должен всегда возвращать результаты, а не необработанные запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...