Das folgende XAML (unten) definiert eine benutzerdefinierte Sammlung in Ressourcen und versucht, sie mit einem benutzerdefinierten Objekt aufzufüllen;Wie behebe ich den WPF-Designer-Fehler 'Der Typ {0} unterstützt keinen direkten Inhalt'. '?
<UserControl x:Class="ImageListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300"
xmlns:local="clr-namespace:MyControls" >
<UserControl.Resources>
<local:MyCustomCollection x:Key="MyKey">
<local:MyCustomItem>
</local:MyCustomItem>
</local:MyCustomCollection>
</UserControl.Resources>
</UserControl>
Das Problem ist, dass ich einen Fehler in dem Designer von ‚Der Typ‚MyCustomCollection‘nicht direkt Inhalte unterstützt die‘ erhalten. Ich habe versucht, ContentProperty so einzustellen, wie es in MSDN empfohlen wird, kann aber nicht herausfinden, auf was es eingestellt werden soll. Das benutzerdefinierte Objekt, das ich verwende, ist unten und ist sehr einfach. Ich habe Item, Items und MyCustomItem ausprobiert und kann mir nicht vorstellen, was ich sonst noch versuchen soll.
<ContentProperty("WhatGoesHere?")> _
Public Class MyCustomCollection
Inherits ObservableCollection(Of MyCustomItem)
End Class
Irgendwelche Hinweise darauf, wo ich falsch werde dankbar empfangen werden würde. Es gibt auch Hinweise darauf, wie Sie sich in das WPF-Objektmodell einarbeiten, um zu sehen, welche Eigenschaften zur Laufzeit verfügbar sind. Vielleicht kann ich es auch so herausfinden.
Grüße
Ryan
Sieht gut aus, aber eine Frage zu Ihrem Setter dort. Würde das nicht ständig zur Sammlung hinzufügen und eine Ausnahme verursachen? Auch warum IList und nicht ObservableCollection? Danke –
Nein, es werden nur so viele Elemente hinzugefügt wie in der Variable für den eingehenden Wert - und das sind die Werte, die Sie in XAML definieren. Und es ist IList, weil das der Typ der Items-Eigenschaft ist. Denken Sie daran, dass der Wrapper für die Items-Eigenschaft und nicht für die gesamte Klasse bestimmt ist. –
Boyan
Danke, das ist ein ausgezeichneter Rat. Sehr geschätzt. –