2011-05-18 36 views
2

您可以通過以下方式在XAML中定義自定義詞典。Silverlight在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。

+0

你的問題不是很清楚。你究竟想要做什麼?在XAML中創建一個詞典? – ColinE 2011-05-18 15:30:49

+0

你讀過我最後的短語嗎?我想創建一個Dictionary 。 – 0xbadf00d 2011-05-18 15:41:12

+0

你爲什麼試圖在XAML新?爲什麼不在你的視圖模型裏面做呢?我不明白爲什麼一個的字典在xaml中會有用 – 2011-07-24 21:11:48

回答

0

Silverlight不支持XAML中的泛型。你也不能直接創建任意類型的對象,因爲SL不知道如何實例化它。

您應該考慮Chris Haines建議將您的字典作爲視圖模型,因爲最好的做法是在xaml之外定義這些東西。

你不能真正做到這一點在Silverlight(見Is there any way to instantiate a 'Type' in Silverlight XAML?

你可以換你的字典,輸入字符串,讓它把它們轉換成內部類型,不過說真的,爲什麼你就不能使用的字符串類型的表示?做Type.FullName