Frage

Gibt es eine Möglichkeit, eine Ressource zu einem Resource von Code hinzuzufügen, ohne einen Ressourcenschlüssel zu geben?

Zum Beispiel, ich habe diese Ressource in XAML:

<TreeView.Resources>
    <HierarchicalDataTemplate DataType="{x:Type xbap:FieldPropertyInfo}"
        ItemsSource="{Binding Path=Value.Values}">
            <TextBlock Text="{Binding Path=Name}" />
    <HierarchicalDataTemplate>
</TreeView.Resources>

Ich brauche diese Ressource dynamisch von Code zu erstellen und sie das TreeView Resource hinzuzufügen. Das bedeutet aber, keinen Schlüssel in XAML mit, dass es verwendet wird, standardmäßig für alle FieldPropertyInfo Typen. Gibt es eine Möglichkeit, es auf die Ressource im Code hinzuzufügen, ohne einen Schlüssel mit oder ist es eine Möglichkeit ich einen Schlüssel verwenden können, und noch haben sie auf allen FieldPropertyInfo Typen verwendet?

Hier ist, was ich in C # getan habe, so weit:

HierarchicalDataTemplate fieldPropertyTemplate = new HierarchicalDataTemplate("FieldProperyInfo");

fieldPropertyTemplate.ItemsSource = new Binding("Value.Values");

this.Resources.Add(null, fieldPropertyTemplate);

Offensichtlich ist, dass der Schlüssel null auf eine Ressource der Resource Zugabe nicht.

War es hilfreich?

Lösung

Mit der Art, die Sie die Vorlage mögen, als Schlüssel zur Anwendung:

HierarchicalDataTemplate fieldPropertyTemplate = new 
    HierarchicalDataTemplate("FieldProperyInfo");

fieldPropertyTemplate.SetBinding(
   HierarchialDataTemplate.ItemSourceProperty, 
   new Binding("Value.Values");
this.Resources.Add(FieldPropertyInfo.GetType(), fieldPropertyTemplate);

Der Grund, Ihr Code nicht funktioniert war Ihr wurde nicht tatsächlich die Bindung Einstellung . Sie müssen SetBinding nennen, mit der Eigenschaft, die Sie die Bindung gebunden werden sollen.

Andere Tipps

Mit der Art, die Sie die Vorlage mögen, als Schlüssel zur Anwendung:

this.Resources.Add(FieldPropertyInfo.GetType(), fieldPropertyTemplate);

Wie bei der Vorlage oben geben Sie einen Typen. Sie müssen entweder einen Namen zu schaffen, oder einen Typ.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top