2010-11-03 7 views
0

Si j'ai un objet simple:Comment ajouter à la valeur de mesure (non-dépendance) collection valeur de la propriété dans le balisage XAML

class MyObject 
{ 
    public string MyValueProperty { get; set; } 
} 

et si je veux instancier en XAML et définir la propriété (comme ci-dessous), cela fonctionne:

<local:MyObject MyValueProperty="SomeValue" /> 

Cependant, si mon objet a une collection propriété sur elle:

class MyObject 
{ 
    public MyObject() { this.MyCollectionProperty = new List<string>(); } 

    public IList<string> MyCollectionProperty { get; set; } 
} 

alors je ne peux pas trouver comment ajouter des éléments à travers XAML. Ce que je voudrais pouvoir faire quelque chose comme:

<local:MyObject> 
    <local:MyObject.MyCollectionProperty> 
     <sys:String>One</sys:String> 
     <sys:String>Two</sys:String> 
     <sys:String>etc</sys:String> 
    </local:MyObject.MyCollectionProperty> 
</local:MyObject> 

J'ai essayé mais je reçois une exception Parse indiquant que je ne peux pas mettre String à une propriété de type IList<string>, et je me rends compte que je pouvais probablement contourner cela en ajoutant une instanciation d'une `List 'au balisage, mais je veux éviter cela.

Des suggestions?

Répondre

0

travaillé dehors - le problème parce que ma propriété a été définie comme un IList<T> et ainsi l'analyseur XAML ne pouvait pas travailler comment instancier une instance appropriée (même si déjà avait une instance spécifiée

.

Modification de la déclaration de la propriété à List<string> le faire fonctionner:

Questions connexes