Dělám vlastní ovládání podobné ItemsControl
tak to má Items
majetek chci být nimiž lze vytvořit vazbu, ale v pořadí pro moji kontrolu na aktualizace, majetek musí implementovat INotifyCollectionChanged
. Rád bych uživateli, aby byl schopen se vázat jakýkoliv objekt, tak dlouho, jak to implementuje INotifyCollectionChanged
a IList
.
Zatímco jednoduché řešení je vytvořit nové rozhraní seznam tak jako tak
public interface INotifyCollectionChangedAndList : INotifyCollectionChanged, IList { }
a vyžadovat to být dědičné na jejich vlastní kolekce objektů.
Nicméně, namísto toho by měl být také schopen použít standardní ObservableCollection<T>
stejně, které má zdědit oba INotifyCollectionChanged
a IList
ale to není dědit INotifyCollectionChangedAndList
a já opravdu nemám nad tím kontrolu. Stejně tak, pokud oni používají různé knihovny s typ, který se nedokáže ovládat, že provede dvě rozhraní mělo by to fungovat.
Takže moje otázka je, jestli existuje způsob, jednoduché nebo jinak (tj. reflexe), kde bych mohl zadat jakýkoliv použitý typ musí implementovat všechny požadavky dvou (nebo více) rozhraní bez výslovného SomeClass : INotifyCollectionChangedAndList
?
EDIT
Myslím, že odpověď je ne. Takže označím @benjamin odpověď jako správnou, protože i když to nemusí být to nejlepší pro kontrolu autorů, to bude v jiných případech být nejbližší věc na to, co bych jinak chtěl dosáhnout.