ValidationRule с проблемой индексатора

Наша компания использует индексаторы для нашей платформы, чтобы мы могли быстро привязывать данные к окну без необходимости создавать свойство для каждого источника данных. Поскольку WPF (в отличие от Silverlight?) требует использования OnPropertyChanged("Item[]") для указания изменения, все элементы, использующие индексатор, обновляются в пользовательском интерфейсе. Эта функциональность вызывает проблему, когда элемент управления использует как ValidationRule, так и доступ к данным через индексатор. Кажется, что при вызове OnPropertyChanged для свойства индексатора он обновляет данные элемента управления до того, что находится в источнике данных, когда возникает ошибка с элементом управления. Поскольку нет способа вызвать OnPropertyChanged для свойства индексатора со значением ключа, изменение другого элемента управления приводит к возврату того, что находится в элементе управления, в котором возникла ошибка.

Мой вопрос: кто-нибудь смог использовать оба свойства индексатора и ValidationRule вместе, чтобы элемент управления с ошибкой сохранял свою ошибку до тех пор, пока пользователь не исправит элемент управления?

Если нет, то есть ли у кого-нибудь предложения? Нам нравится использовать свойство indexer, так как это делает настройку привязки намного быстрее, чем создание свойства для каждого поля данных (наши приложения сосредоточены на CRUD).


person cbart387    schedule 09.09.2011    source источник


Ответы (1)


Решение, которое было найдено, заключалось в реализации DynamicObject. Это исключило использование индексатора и обошло проблему.

person cbart387    schedule 06.01.2012