Псевдо пример:
<Window>
<Window.Tag>
<x:Dictionary KeyType="{x:Type sys:String}" ValueType="{x:Type sys:Int32}">
<sys:DictionaryEntry Entry="{sys:DictionaryEntry Key0, 000}"/>
<sys:DictionaryEntry Key="key1" Value="111"/>
<sys:DictionaryEntry>
<sys:DictionaryEntry.Key>
<sys:String>Key2<sys:String>
</sys:DictionaryEntry.Key>
<sys:DictionaryEntry.Value>
<sys:Int32>222</sys:Int32>
</sys:DictionaryEntry.Value>
</sys:DictionaryEntry>
</x:Dictionary />
</Window.Tag>
</Window>
Вы не можете использовать класс Dictionary
непосредственно в XAML, потому что нет способа указать аргументы универсального типа (это будет возможно в следующей версии XAML, но не будет поддерживаться в конструкторе VS2010 WPF ... по крайней мере, не в первоначальной версии).
Однако вы можете объявить неуниверсальный класс, наследуемый от Dictionary
, и использовать его в XAML.
C #
public class MyDictionary : Dictionary<string, int> { }
XAML
<Window>
<Window.Tag>
<local:MyDictionary>
<sys:Int32 x:Key="key0">0</sys:Int32>
<sys:Int32 x:Key="key1">111</sys:Int32>
<sys:Int32 x:Key="key2">222</sys:Int32>
</local:MyDictionary />
</Window.Tag>
</Window>