Silverlight在XAML中定义自定义词典

时间:2011-05-18 13:15:05

标签: silverlight xaml

您可以通过以下方式在XAML中定义自定义词典。

// *.cs
public class MyDictionary : Dictionary<string, int> { }

// *.xaml
<sys:Int32 x:Key="Zero">0</sys:Int32>

但其他关键类型呢?您可以在XAML 2009中使用扩展元素用法:

<object>
    <x:Key>keyObject</x:Key>
</object>

但是,Silverlight尚不支持此功能。

我能做些什么吗?我想使用System.Type为Key-Type的自定义Dictionary。

1 个答案:

答案 0 :(得分:0)

Silverlight不支持XAML中的泛型。您也无法直接创建任意类型的对象,因为SL不知道如何实例化它。

您应该考虑Chris Haines建议将您的字典作为视图模型,因为更好的做法是在xaml之外定义这些内容。

你无法在Silverlight中真正做到这一点(见Is there any way to instantiate a 'Type' in Silverlight XAML?

你可以包装你的字典并输入字符串,让它在内部将它们转换为类型,但是真的,你为什么不能只使用Types的字符串表示? Do Type.FullName