2010-08-25 3 views
0

Je sais que je peux déclarer un tableau de chaîne en XAML comme ceci:Comment déclarer un tableau de StringDictionary en XAML?

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

Comment puis-je déclarer un tableau de System.Collections.Specialized.StringDictionary en XAML

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

Merci!

+0

Vous pouvez ajouter le support XAML pour en écrivant une coutume 'MarkupExtension '. –

Répondre

0

Non construit de manière à le soutenir, mais deux options pour vous rapprocher.

Si vous êtes sur .NET 4 et ne sont pas la compilation de votre XAML (hautement improbable) vous pouvez faire quelque chose comme ça

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

Encore une fois, ce qui est vraiment pas une solution viable mais pour la plupart est possible.

Il est plus que probable que vous souhaitiez créer une extension de balisage personnalisée pour prendre en charge l'initialisation générique de la collection. Quelque chose comme ceci:

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

adapter sa dernière solution pour inclure la clé et de la valeur et il devrait arriver là où vous voulez, une sorte de

0

Rien. Vous ne pouvez pas faire cela en XAML.

Il n'y a qu'une seule façon de remplir un StringDictionary: appelez sa méthode Add(string,string). XAML ne permet pas d'appeler des méthodes. Affectez uniquement des propriétés et, dans un cas particulier, remplissez les collections qui implémentent ICollection<T>, ce que StringDictionary ne fait pas.

Questions connexes