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