Je fais un contrôle personnalisé similaire à un ItemsControl
ainsi, il a une Items
bien, je veux être bindable, mais dans l'ordre à mon contrôle pour la mise à jour, la propriété doit mettre en œuvre INotifyCollectionChanged
. J'aimerais que l'utilisateur soit en mesure de lier n'importe quel objet en tant qu'il met en œuvre à la fois INotifyCollectionChanged
et IList
.
Alors que la solution la plus simple est de créer une nouvelle liste d'interface comme
public interface INotifyCollectionChangedAndList : INotifyCollectionChanged, IList { }
et exiger que ce soit hérité de leurs personnalisé des objets de collection.
Cependant, au lieu de faire cela, ils doivent également être en mesure d'utiliser la norme ObservableCollection<T>
ainsi ce qui n'héritent à la fois INotifyCollectionChanged
et IList
mais il n'est pas hériter INotifyCollectionChangedAndList
et je n'ai pas vraiment le contrôle. De même, si l'utilisation d'une bibliothèque avec un type qu'il ne peut pas contrôler qui n'en œuvre les deux interfaces, il doit encore travailler.
Donc ma question est si il y a un moyen, facile ou le contraire (c'est à dire la réflexion), où j'pouvez spécifier n'importe quel type utilisé doit mettre en œuvre toutes les exigences de deux (ou plus) des interfaces sans l'explicite SomeClass : INotifyCollectionChangedAndList
?
MODIFIER
Je crois que la réponse est non. Donc, je vais marquer @benjamin réponse comme correcte, parce que bien qu'il pourrait ne pas être le meilleur pour contrôler des auteurs, il sera dans d'autres cas, être la chose la plus proche de ce que j'aimerais atteindre.