IDataErrorInfo в winforms - PullRequest
       35

IDataErrorInfo в winforms

9 голосов
/ 10 сентября 2009

Может ли информация IDataError правильно использоваться в приложении winforms? В прошлом я выполнял привязку обычным способом (1) и делал проверку в событии OnValidating конкретного элемента управления. Я хотел бы перенести проверку данных в модель предметной области, чтобы можно было легко менять пользовательские интерфейсы и чтобы вся логика находилась в одном месте.

Я изучал IDataErrorInfo, но все, что я нахожу, имеет отношение к WPF и разрабатываемому приложению - это, строго говоря, приложение winforms.

Я также заметил, что привязка, которая используется в WPF, находится в System.Windows.Data, а привязка, которую я всегда использовал, находится в System.Windows.Forms (которую я не вижу, когда пытаюсь чтобы добавить его в качестве ресурса - я использую 3.5). Помимо свойства "ValidatesOnDataErrors", есть ли разница между ними?

(1) обычный способ:

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));

Ответы [ 2 ]

9 голосов
/ 10 сентября 2009

Работает с компонентом ErrorProvider в Windows Forms.

Полный, но очень простой и короткий учебник см. в этом блоге .

1 голос
/ 10 сентября 2009

Да, IDataErrorInfo работает в winforms. Например, DataGridView будет использовать это автоматически для каждой строки и для каждой ячейки. Но это зависит от реализации и не применяется автоматически к другим привязкам. Однажды я написал некоторый код, чтобы связать его с провайдером ошибок и выполнить работу через события изменения, но, к сожалению, у меня его нет. Но, похоже, я помню, это было не так уж и много.

...