Ich habe eine Klasse CollectionOfThings
. Wie der Name schon sagt, ist es eine einfache Sammlung von Instanzen der Thing
Klasse. Thing
Klasse hat einen öffentlichen Standardkonstruktor und zwei einfache öffentliche Get, Set-Eigenschaften ID
und DisplayName
, beide sind String. CollectionOfThing
hat auch einen öffentlichen Standardkonstruktor.Direkte Inhaltserstellung in XAML auf einem abhängigen Objekt aktivieren
In XAML würde Ich mag Markup wie folgt verwenden: -
<Grid.Resources>
<local:CollectionOfThings x:Key="Things">
<local:Thing ID="1" DisplayName="Hello" />
<local:Thing ID="2" DisplayName="World" />
<local:CollectionOfThings>
</Grid.Resources>
Alle so lange gut, wie CollectionOfThings aus einer Sammlungstyp ableitet. Jedoch möchte ich CollectionOfThings
auch eine DependencyObject
sein. Ich dachte, das ist in Ordnung, eine Implementierung von , INotifyCollectionChanged
usw. ist nicht so schwer. Dann kann ich von DependencyObject
ableiten.
Leider ICollection<T>
schneidet es aus irgendeinem Grund nicht. Mit ICollection<Thing>
bekomme ich 'CollectionOfThings unterstützt Thing nicht als Inhalt'. Geh zurück zu Collection<Thing>
und alles funktioniert, aber lässt mich ohne eine DependencyObject
Implementierung.
Vorschläge jemand?
Das ist es! Die Vanille-IList war, was ich vermisst habe, danke. – AnthonyWJones
Perfekte Antwort, ich erwartete, IList zu denken, es wäre zu Liste bevorzugt, jetzt dank dieses Beitrags weiß ich, warum und bin glücklich mit der Verwendung der Liste als der Eigenschaftstyp. Ich bekomme die Unterstützung für die Entwurfszeit, die ich mit IList vermisst habe –