У меня есть класс Client
, который является подклассом Configurable
.
У меня есть ObservableCollection<Client>
, который мне нужно просмотреть как ObservableCollection<Configurable>
. Это позволит мне выполнить привязку данных к списку из кода генерации общего макета. Он также должен позволять мне очищать список и добавлять элементы в список. Конечно, при добавлении элементов в список он должен выполнять проверку типа во время выполнения, чтобы убедиться, что добавляемый общий элемент (Configurable
) имеет соответствующий тип (Client
).
Я представляю себе класс с именем что-то вроде ObservableSurrogateCollection<T>
. T
— это общий класс (Configurable
). Вы бы построили его, передав ему ObservableCollection<T2>
, где T2
является подклассом T
. Вы можете привязать к нему данные, и все события изменения коллекции в обернутом списке будут правильно маршрутизироваться (в обоих направлениях).
Это существует? Разве это не то, чем я должен заниматься? Кажется, я читал, что .NET 4.0 будет поддерживать такую функцию на уровне языка?
Я просмотрел эти варианты:
ReadOnlyObservableCollection<T>
. Это очень близко. Однако, поскольку он доступен только для чтения, я не могу добавлять или удалять элементы.- Нестандартный
ObservableCollection
. Я не могу найти это, если оно существует.
Заранее благодарю за любую помощь!