2010-08-25 21 views
0

我知道我可以聲明一個String數組中的XAML這樣的:如何在XAML中聲明StringDictionary的數組?

<x:Array Type="{x:Type System:String}"> 
    <System:String> first </System:String> 
    <System:String> second </System:String> 
    <System:String> third </System:String> 
</x:Array> 

我如何可以聲明System.Collections.Specialized.StringDictionary數組在XAML

<x:Array Type="{x:Type Specialized:StringDictionary}"> 
    <Specialized:StringDictionary> 
     (((what do I put here?))) 
    </Specialized:StringDictionary> 
</x:Array> 

謝謝!

+0

您可以添加此XAML支持通過編寫自定義'的MarkupExtension '。 – 2010-08-25 18:03:05

回答

0

沒有內置的方式來支持它,但兩個選項讓你關閉。

如果你是在.NET 4中,而不是編譯你的XAML(可能性很小) 你可以做這樣的事情

http://blogs.windowsclient.net/rob_relyea/archive/2009/06/01/xaml-using-generic-types-in-xaml-2009.aspx

再次,這是真的不爲大多數,但一個可行的解決方案是可能的。

您可能希望創建自定義標記擴展來支持泛型集合初始化。事情是這樣的:

http://blogs.msdn.com/b/mikehillberg/archive/2006/10/06/limitedgenericssupportinxaml.aspx

適應他最後的解決方案,包括關鍵和價值,它應該得到你想要的,那種

0

沒什麼。你不能在XAML中這樣做。

只有一種方法來填充StringDictionary:將其稱爲Add(string,string)方法。 XAML不允許調用方法。只分配屬性,並且作爲特殊情況填充實現ICollection<T>的集合,而StringDictionary則不包含這些集合。