2012-01-02 16 views
1

マークアップ拡張機能に関するMSDNの記事を読んでみましたが、その記事が何であるかを調べることはできません。マークアップ拡張とは

マークアップ拡張が必要な​​ので、XAMLはコードの背後にあることを認識します(そうしないと、組み込みクラスにアクセスする方法はありません)。しかし、どうすればすべてのコントロールタイプにアクセスできますか?

マークアップ拡張が必要な​​理由を明確に説明できません。コントロールオブジェクトに直接アクセスできる場合、バインディングオブジェクトにアクセスするためにマークアップ拡張が必要な​​のはなぜですか?

答えて

4

マークアップ拡張協会(Bindingx:Reference)を作成またはクラス(x:Type)の種類を取得するように、あなたは彼らがしたいものは何でも実行することによって(名前が示すように)アクセスについてではなく、マークアップの機能を拡張。

これはまさに何でも使用できますが、マークアップではそれだけでは足りません。 XAMLとして

+1

です。したがって、マークアップ拡張を使用するのではなく、要素の構文でバインディングを記述することもできます。 – mihajlv

+1

@mihajlv:もちろん、すべてのマークアップ拡張を要素構文で書くことができます。しばしば、中括弧構文を使用する方が便利です。 –

+0

ありがとう、ありがとう。 – mihajlv

0

One way to describe Markup Extension is :

は、その単純さのために、より詳細なことができる単純なXML構文に基づいており、したがって、マークアップ拡張の理由のコンセプトの一つが導入されました。
マークアップ拡張機能は、1つの簡潔な表現

<TextBox > 
 
    <TextBox.Text>A text in TextBox</TextBox.Text> 
 
</TextBox> 
 

 
<TextBox Text="{x:Static system:Environment.UserName}" />

にXAMLの多くの行を有効にするために使用することができ、この後の構文はまた、文字列リテラル(新しいオブジェクト以外の値を使用する方法を提供します)を使用します。また、マークアップ拡張は、実行時にプロパティの設定方法を決定するオブジェクトです。