J'ai une classe CollectionOfThings
. Comme son nom l'indique, il s'agit d'une simple collection d'instances de la classe Thing
. Thing
classe a un constructeur public par défaut et deux get public simple, définir les propriétés ID
et DisplayName
, les deux sont chaîne. CollectionOfThing
possède également un constructeur par défaut public.Activation de la création de contenu direct en XAML sur un objet de dépendance
Dans XAML Je voudrais utiliser le balisage comme ceci: -
<Grid.Resources>
<local:CollectionOfThings x:Key="Things">
<local:Thing ID="1" DisplayName="Hello" />
<local:Thing ID="2" DisplayName="World" />
<local:CollectionOfThings>
</Grid.Resources>
Tout est bon aussi longtemps que CollectionOfThings dérive d'un type de collection. Cependant, je veux CollectionOfThings
également être un DependencyObject
. Je pensais que c'est bien de créer une implémentation de ICollection<T>
, INotifyCollectionChanged
etc n'est pas si difficile. Ensuite, je peux dériver de DependencyObject
.
Malheureusement, ICollection<T>
ne le coupe pas pour une raison quelconque. Avec ICollection<Thing>
je reçois 'CollectionOfThings ne supporte pas Thing comme contenu'. Retour à Collection<Thing>
et tout fonctionne mais me laisse sans une implémentation DependencyObject
.
Suggestions personnes? sont généralement utilisés
C'est ce que j'ai compris! La vanilla IList était ce qui me manquait, merci. – AnthonyWJones
Réponse parfaite, je pensais utiliser IList pensant qu'il serait préférable de Liste , maintenant grâce à ce poste, je sais pourquoi et je suis heureux avec l'utilisation de la liste comme le type de propriété. Je reçois le support de design qui me manquait avec IList –