внутри виртуальной машины, которая содержит список, каждый раз, когда ваш список изменяется, итерируйте по списку и сообщайте каждому объекту, чтобы он выдавал уведомление об изменении свойства либо о свойствах, которые, как вы знаете, могли быть недействительными, либо только о каждом свойстве, устанавливая имя свойства в пустая строка.
Похоже, ваша проверка может проходить по нескольким объектам, и в этом случае вам нужно запустить проверку с упомянутой выше виртуальной машины и установить сообщения об ошибках в соответствующих объектах в коллекции, а затем вызвать событие изменения свойств для этих объектов.
Ранее я делал это с помощью открытого метода SetErrorMessage(string string)
для объектов, реализующих IDataErrorInfo, и открытого метода OnPropertyChanged(string)
, чтобы можно было устанавливать ошибки и вызывать события изменения контекстного свойства извне объекта.
Ошибки будут храниться в словаре, а свойство this[string]
будет искать словарь на наличие ошибок, а также запускать собственную проверку.