2016-05-01 8 views
-1

の違いは何ですか?StaticResourceとStaticResourceExtensionの構文

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

とXAMLに好まれるべき

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

答えて

1

違いはありません。中括弧構文は、最初の例のようにプロパティを子要素として指定することなく、属性値内でマークアップ拡張を使用できるように特別に設計されています。当然のことながら、これらの状況では中括弧構文が好まれます。

+0

私はあなたの2番目の文章の意味に従いませんか? –

+1

これをこのようにしてください。最初のやり方や2番目のやり方で書くのですか?もしあなたが最初にそれを書くなら、誰もあなたを止めることはできません。しかし、私はむしろそれを第2の方法で書きます。そして、私は、XAMLの大部分の著者が同意すると思います。とてもクリーンでシンプルです。 – BoltClock

+0

2番目のコードブロックでStaticResourceをStaticResourceExtensionに置き換えても、それでも機能します。ですから、私はそれがstring = Stringのようなsimilerの場合だと思います。このように設計された理由を知っていますか? –