Som robiť vlastné ovládanie podobne ItemsControl
tak to má Items
majetku chcem byť bindable, ale aby moje kontroly aktualizovať, majetku sa musí realizovať INotifyCollectionChanged
. Rád by som sa užívateľovi byť schopný viazať žiadne objekt tak dlho, ako to realizuje oboch INotifyCollectionChanged
a IList
.
Zatiaľ čo jednoduché riešenie je vytvoriť nové rozhranie zoznam tak ako
public interface INotifyCollectionChangedAndList : INotifyCollectionChanged, IList { }
a to vyžadujú sa dedia na ich vlastných zbierkových predmetov.
Avšak, namiesto robiť to, že by mali byť tiež schopní použiť štandardné ObservableCollection<T>
ako dobre, ktoré sa dedia oboch INotifyCollectionChanged
a IList
ale to nie zdediť INotifyCollectionChangedAndList
a nemám naozaj mať kontrolu nad to. Podobne ak používajú inú knižnicu s typom, ktoré nemôžu kontrolovať, aby sa zrealizujú dve rozhrania by to malo fungovať aj naďalej.
Takže moja otázka je, či existuje spôsob, jednoduché alebo inak (t.j. odraz), kde by som mohol určiť všetky typy používané musí realizovať všetky požiadavky z dvoch (alebo viac) rozhrania bez výslovného SomeClass : INotifyCollectionChangedAndList
?
UPRAVIŤ
Verím, že odpoveď je nie. Takže som chcel marek @benjamin odpoveď za správnu, pretože aj keď to nemusí byť najlepšie pre kontrolu autorov, bude to v iných prípadoch sa najbližší vec, čo by som inak chceli dosiahnuť.