2016-05-01 12 views
-1

Was ist der Unterschied zwischen.StaticResource vs StaticResourceExtension Syntax

<TextBox Text="{local:BindingResourceExtension MyBinding}" > 
    <TextBox.Style> 
     <StaticResourceExtension ResourceKey="style" /> 
    </TextBox.Style> 
</TextBox> 

und

<TextBox Text="{local:BindingResourceExtension MyBinding}" Style="{StaticResource style}"/> 

, die in XAML bevorzugt werden sollen?

Antwort

1

Es gibt keinen Unterschied. Die geschweifte Klammer-Syntax wurde speziell so entworfen, dass Sie Markup-Erweiterungen innerhalb von Attributwerten verwenden können, ohne wie im ersten Beispiel auf die Eigenschaften als untergeordnete Elemente zurückgreifen zu müssen. Daher ist natürlich die geschweifte Klammer Syntax in diesen Situationen bevorzugt.

+0

Ich folge nicht, was Sie mit Ihrem zweiten Satz meinen? –

+1

Sagen Sie es so: Würden Sie es lieber auf die erste oder zweite Art schreiben? Wenn du es lieber auf die erste Art schreibst, kann dich niemand aufhalten. Aber ich schreibe es lieber auf die zweite Art. Und ich denke, die überwiegende Mehrheit der XAML-Autoren würde zustimmen. Es ist so viel sauberer und einfacher. – BoltClock

+0

Wenn ich StaticResource durch StaticResourceExtension im zweiten Codeblock ersetze, funktioniert es immer noch. Also ich denke, es ist similer Fall wie String = String. Weißt du, warum es so gestaltet ist? –