Проверка WPF Control - PullRequest
       3

Проверка WPF Control

1 голос
/ 17 июня 2010

Я разрабатываю инфраструктуру WPF GUI, и у меня был плохой опыт с двухсторонним связыванием и множеством ненужных событий, запускаемых (в основном, во Flex), поэтому я пошел по пути наличия привязок (строка, которая представляет пути объекта) в моем контроле.Когда представление запрашивается для отображения, контроллер загружает представление и получает необходимые объекты (используя привязки) из БД и заполняет элементы управления правильными значениями.Это имеет ряд преимуществ, таких как отложенная загрузка, поведение отмены по умолчанию и т. Д. Когда данные в представлении необходимо сохранить, представление снова возвращается в контроллер, который в основном выполняет резервирование, т.е. повторно заполняет объекты из представления, если значенияизменились.

Однако у меня возникли проблемы при попытке проверить компоненты.Каждая сущность имеет атрибуты в своих свойствах, которые определяют правила проверки, к которым контроллер может легко получить доступ, и проверяют данные в представлении против него.Фактическая проверка данных в порядке.Проблема возникает, когда я хочу, чтобы элемент управления GUI отображал информацию о проверке ошибок.Если я пытаюсь изменить стиль, я получаю сообщение об ошибке, в котором говорится, что стили нельзя изменить после использования.Есть ли способ в c # запустить нормальный механизм проверки WPF и только что доказал это ошибками validaiton, найденными контроллером?

Заранее спасибо

Джон

1 Ответ

2 голосов
/ 17 июня 2010

Две вещи:

1) Доверяйте привязке данных в WPF. Привязка данных в WPF невероятно надежна и очень полезна - нет никаких причин, чтобы позволить вашему «плохому опыту» с другими платформами удержать вас от использования DataBinding. Это значительно упростит ваш код.

2) Лучшим вариантом для проверки данных является использование встроенных возможностей проверки данных WPF. Если вы сделаете в своей реализации Data Context (где данные хранятся для привязки) реализацию IDataErrorInfo , вы получите соответствующие стили проверки почти бесплатно (и полностью настраиваемые). Это правильный способ обработки данных в пользовательском интерфейсе в WPF.

...