Combobox de liaison de données WPF à une liste & lt; string & gt;
Je vais avoir un moment difficile essayer de lier ma propriété, qui est de type Liste à mon combobox par XAML.
public List<string> MyProperty { get; set; }
Le code XAML suivant la liaison ne fonctionne pas:
<ComboBox Name="cboDomainNames" ItemsSource="{Binding Path=MyProperty}"/>
Mais l'affectation suivante:
cboDomainNames.ItemsSource = MyProperty;
fonctionne parfaitement. Ce que je suis en manque ici?
source d'informationauteur ioWint | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
De poster mon commentaire en arrière pour marquer la réponse.
Mon DataContext a été défini, MAIS qu'il a été défini après InitializeComponent(). J'ai pensé que peut être le problème. Puis j'ai réalisé que, comme je suis de liaison par le biais de xaml, lorsque le point de vue des charges, la liaison se produit à la propriété qui est vide.
La propriété est renseignée lorsque la vue est prêt après son chargement (j'.e sur _presenter.OnViewReady()). Puisque ce n'est pas une collection observable rien n'est ajouté à la zone de liste déroulante. En précisant à partir de mon code derrière les œuvres, car à l'époque, les données existent dans la propriété.
Supposons que vous disposez d'un
List<Foo>
appeléFoos
dans votre fenêtre /page.Foo
a une propriétéName
. Maintenant, vous configurez la liaison dans le code XAML comme suit:Ceci est basé sur cette SORTE de question. Lire ce (WPF liaison de données vue d'ensemble) comme une bonne base pour la liaison de données en WPF.
Si vous ne spécifiez rien que de juste le chemin, la liaison n'assume en tant que source du conteneur DataContext. Par ailleurs, la propriété utile est définie sur le conteneur (par exemple la fenêtre).
Vous pouvez résoudre comme suit (dans le code xaml):