0

以下の x:Key 属性のマークアップ拡張機能が何をするのか、またどのようなマークアップ拡張機能なのかを理解しようとしています。

<Window x:Class="App1.Window1" xmlns:dxg="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<DataTemplate x:Key="{dxg:Example ResourceKey=Example}">
    <dxg:TextEdit Text="123/>
</DataTemplate>

</Window>

ありがとう。

4

2 に答える 2

2

この例は何も実行しませんExample。WPF 名前空間で名前が付けられたマークアップ拡張機能ではないため、むしろ失敗します。

しかし、という名前のマークアップ拡張機能があった場合、オブジェクトExampleをインスタンス化し、そのプロパティを設定してから、そのメソッドを呼び出します。このメソッドは、リソース ディクショナリに追加される項目のキーとして使用されるオブジェクトを返します。ExampleMarkupExtensionResourceKeyProvideValue

コンテキストがないと、提供した例が何を示しているのかを知るのは困難です。実証されている概念は、a) リソース ディクショナリのキーは文字列だけでなく、任意のオブジェクトにすることができること、および b) マークアップ拡張機能を使用してそのキーを生成できることだと思います。実際の例:

<DataTemplate x:Key="{x:Type TextBox}">

DataTemplateのキーを持つ をtypeof(TextBox)リソース ディクショナリに追加します。

于 2010-07-01T18:12:19.063 に答える
0

通常、 x:Key 属性を使用すると、キーでリソースを参照できます。この場合、テンプレートは ResourceDictionary 内にないため、目的があるかどうかわかりません!

お役に立てれば!

于 2010-07-01T15:24:25.843 に答える