WPF DataTemplate - x:Key vs DataType="{x:Type XXXX")
Habe ich ein DataTemplate, das ich finden wollen, indem Sie die FrameworkElement.FindResource()
. Zu tun, dass ich brauchen, um eine Taste auf der Daten-Vorlage.
Das problem ist, dass x:key und die Zuweisung eines Datentyps werden die sich gegenseitig ausschließen. (Referenz)
So, sobald ich den Datentyp für meine Vorlage, wie ich finde, ist der Key Wert? Gibt es eine Formel, die wandelt das DataTemplate, in der eine Zeichenfolge für den Schlüssel?
(Bei Produkten, warum ich brauche, um das DataTemplate, das finden von Ressourcen finden Sie unter diesem Frage.
InformationsquelleAutor Vaccano | 2009-12-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem x:Key scheint zu sein, ein Objekt vom Typ
System.Windows.DataTemplateKey
. So können Sie "erstellen" wird der Schlüssel für Ihre Ressource mitnew DataTemplateKey(typeof(myType))
.FindResource
wird die Arbeit mit diesem key, daTemplateKey.Equals
außer Kraft gesetzt wurde.Hier ist ein sehr einfaches Beispiel für die Anwendung:
XAML:
Codebehind:
Sie sollten in der Lage sein, verweisen Sie im XAML-Code mithilfe
{x:Type ...}
als Schlüssel.Dies versucht... DataTemplate="{StaticResource {x:Type vm:IOPBase}}", aber es funktioniert nicht. Stürzt ab. (FYI, ich weiß, das der Typ korrekt ist, da die Vorlage hat " DataType="{x:Type vm:IOPBase}"', welches einwandfrei funktioniert.) Gedanken?
Gute Frage, dachte ich, es würde funktionieren. Könnte Sie erstellen Sie eine neue Frage und poste ein minimal funktionsfähiges Beispiel?
Ich hatte das Gefühl, es würde nicht funktionieren, denn auch durch das eigene Beispiel, der Typ ist nicht der Schlüssel... eine DataTemplateKey initialisiert mit den Daten geben wird. Ja... ich werde einen neuen hinzufügen...
InformationsquelleAutor Heinzi