Eu estou fazendo um controle personalizado é semelhante a um ItemsControl
então, ele tem uma Items
propriedade quero ser ligáveis, mas para o meu controle para atualização, a propriedade deve implementar INotifyCollectionChanged
. Eu gostaria de o usuário ser capaz de vincular de qualquer objeto desde que implementa INotifyCollectionChanged
e IList
.
Enquanto a solução simples é criar uma nova lista de interface, como por
public interface INotifyCollectionChangedAndList : INotifyCollectionChanged, IList { }
e exigem ser herdada em seu costume objetos de coleção.
No entanto, em vez de fazer isso, eles também devem ser capazes de utilizar o padrão de ObservableCollection<T>
bem que herdar tanto INotifyCollectionChanged
e IList
mas não herdam INotifyCollectionChangedAndList
e eu realmente não tenho controle sobre isso. Da mesma forma, se usar uma biblioteca diferente com um tipo que eles não podem controle que implementa duas interfaces de ele ainda deve funcionar.
Então a minha pergunta é se existe uma maneira fácil ou caso contrário (i.e. reflexão), onde pode especificar qualquer tipo utilizado deve implementar todos os requisitos de duas (ou mais) interfaces sem a explícita SomeClass : INotifyCollectionChangedAndList
?
EDITAR
Creio que a resposta é não. Então, eu vou marcar @benjamin resposta como correta, porque embora possa não ser o melhor para os autores de controle, em outros casos, pode ser a coisa mais próxima que eu poderia alcançar.