Tworzę własny element sterowania, podobny ItemsControl
tak, że ma Items
właściwość, do którego chcę oddać, ale do aktualizacji mojego formantu ta właściwość musi być realizowane INotifyCollectionChanged
. Chciałbym, aby użytkownik mógł połączyć dowolny obiekt, jeśli realizuje oba INotifyCollectionChanged
i IList
.
Podczas gdy proste rozwiązanie polega na tym, aby utworzyć nową listę interfejsów, np.
public interface INotifyCollectionChangedAndList : INotifyCollectionChanged, IList { }
i wymagają, aby on pochodzi od ich własnych obiektów kolekcji.
Jednak zamiast tego, są one również powinny mieć możliwość korzystania standard ObservableCollection<T>
także, który dziedziczy zarówno INotifyCollectionChanged
i IList
ale to nie dziedziczy INotifyCollectionChangedAndList
i ja naprawdę nie mogę tego kontrolować. Podobnie, jeśli używają innej biblioteki z typem, który nie może kontrolować, który realizuje dwa interfejsu, nadal musi pracować.
Więc moje pytanie brzmi, czy jest jakiś sposób, prosty lub inny (Czyli Odbicie), gdzie mogę określić, że każdy typ musi implementować wszystkie wymagania dwóch (lub więcej) interfejsów bez wyraźnej SomeClass : INotifyCollectionChangedAndList
?
Edytuj
Wierzę, że odpowiedź będzie negatywna. Dlatego nie omieszkam odpowiedź @benjamin jako poprawny, ponieważ, chociaż to może nie być najlepszy dla autorów prac kontrolnych, w innych przypadkach będzie najbliżej do tego, co chciałbym osiągnąć w przeciwnym przypadku.