1

У меня есть приложение Windows Forms с DataGridView в одной из форм. DataGridView может вставлять и обновлять через набор типизированных данных, созданный Visual Studio.Windows Forms - проверка ввода DataGridView

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

Эта страница here дает некоторые рекомендации. Он советует мне проверять входные данные в своих установщиках свойств источников данных.

Как это сделать с помощью типизированного набора данных? Я привык работать с Linq To Sql, который генерировал частичные классы, но я не уверен в типизированных наборах данных.

Спасибо.

+0

Это действительно засасывает, как трудно проверить эти поля в хорошем смысле. –

ответ

0

Что касается визуальной обратной связи winforms, я думаю, вам стоит взглянуть на концепцию, такую ​​как ErrorProvider.

Если вы ориентируетесь только на проверку входных данных, например, на строку в целочисленном поле, это хороший подход, но, пожалуйста, имейте в виду, что реальная проверка нетривиальных ошибок не должна выполняться при проверке проверки winform модель! Например, «EndDate < StartDate», действительно должен быть перенесен в бизнес-уровень.

+0

Это тривиально. Ваша ссылка испорчена. Я не понимаю вашего ответа. –

+0

Исправлена ​​ссылка, не знаю, что там произошло. Это помогает? –

2

Я сделал общее для пользователя сообщения об ошибке для основных валидаций с помощью этого кода:

dataGrid.DataError += (s, e) => 
{ 
    if (e.Exception != null) 
    { 
     e.ThrowException = false; 
     MessageBox.Show(this, 
      String.Format("Invalid {0}", 
       dataGrid.Columns[e.ColumnIndex].HeaderText), 
      "Error"); 
    } 
}; 

Из MSDN: Walkthrough: Handling Errors that Occur During Data Entry in the Windows Forms DataGridView Control