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