2009-11-17 4 views
0

Est-il possible d'utiliser la liaison pour ajouter des objets à une collection XAML.Liaison d'objets à la collection XAML

quelque chose comme

<x:Array Type="sys:Int32"> 
    <Binding Source="obj", Path="Prop1"/> 
    <Binding Source="obj", Path="Prop2"/> 
</x:Array> 

Répondre

1

Non, la cible d'une liaison de données doit être une propriété de dépendance et un élément d'une collection est pas une propriété.

je peux penser à deux solutions de contournement, mais les deux sont laids et je n'utiliser aucun d'entre eux:

  1. Vous pouvez créer un MarkupExtention qui va créer une collection avec tout ce que vous voulez, vous pouvez même créer celui qui crée une collection à partir de liaisons, mais la syntaxe sera très étrange et le contenu de la collection ne sera pas mis à jour à partir de la source de liaison.
  2. Vous pouvez également créer une nouvelle classe de collection qui hérite de DependencyObject et possède des propriétés de dépendance pour les éléments de la collection (propriétés e0, e1, e2 ... qui mettront à jour le contenu de la collection lorsqu'elle est définie).

Je voudrais essayer de trouver un moyen d'accomplir ce que vous voulez faire sans remplir une collection de liaison de données.

+0

OK, merci. Je vais le faire en code-behind à la place. – adrianm