Должно быть понятно, что один объект не может выполнить какую-либо проверку на основе каких-либо значений в других объектах, поскольку он ничего о них не знает.
Вы должны либо выполнить проверку в самой коллекции, либо в классе, который создает экземпляр коллекции и сохраняет ссылку на нее.
Вы можете, например, обработать событие CollectionChanged
и подключить обработчик события к событию PropertyChanged
для каждого добавляемого PropertiesBase
в коллекцию. Вы выполняете проверку в обработчике ошибок. Это должно быть легко, поскольку у вас есть доступ ко всем элементам.
Когда дело доходит до «пометки» и сущности как недействительной, вы можете, например, сделать это, используя свойство IsValid
или подобное. Если вы реализуете интерфейс INotifyDataErrorInfo
в своем классе модели, вы можете, например, вызвать событие ErrorsChanged
всякий раз, когда IsValid
устанавливается в обработчике события.
Если вы хотите чтобы выполнить проверку в установщиках свойств модели, вы должны каким-либо образом получить ссылку на коллекцию в классе модели. Обойти это невозможно.