Обязательный список C # из обязательных списков - PullRequest
3 голосов
/ 06 мая 2010

Есть ли простой способ создать список привязок, состоящий из нескольких списков привязок? то есть это «просмотр» списков.

То есть: у меня есть 3 списка (list1, list2, list3). Мне нужен список, который всегда является объединением трех списков (можно предположить, что в двух разных списках нет объектов).

Конечно, я могу успешно использовать свойство ListChange, но, возможно, есть более разумный способ сделать это?

Ответы [ 2 ]

1 голос
/ 06 мая 2010

Вы изучали класс CompositeCollection ?

В зависимости от того, что вы пытаетесь сделать, это может помочь: его цель - объединить несколько коллекций в одну коллекцию (обычно для целей отображения / связывания). Таким образом, вы можете создать CompositeCollection и добавить к нему три BindingList экземпляра. CompositeCollection автоматически обновится, чтобы включить членов «дочерних» списков.

1 голос
/ 06 мая 2010

Для этого вам нужно создать свой собственный тип, реализовать IList, IBindingList (и в идеале IBindingListView) и, необязательно, ICancelAddNew и IRaiseItemChangedEvents. Вам также потребуется либо общедоступный необъектный индексатор (public T this[int index] {get;}), либо ITypedList.

Сделав вещи похожие на это, я настоятельно советую вам; нет, если только это действительно не важно. Было бы более прагматично копировать ссылки в новый BindingList<>.

Также; с новыми предметами; в какой список это войдет?

...