Вопрос

Может ли информация 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"));
Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top