Je suis sûr que je l'ai déjà trouvé cela sur StackOverflow, mais je ne semble pas être assez intelligent pour retrouverWPF MVVM et parent-enfant combobox
Ce que je veux faire (en utilisant WPF MVVM) est la suivante:
cmbSelectedAddressRegion: populated with the list of region
cmbSelectedAddressCities: populated with the list of cities in that region
Lorsque l'utilisateur clique sur une région cmbSelectedAddressRegion
les éléments cmbSelectedAddressCities
devraient être les villes de cette région ne
J'ai un XAML comme celui-ci
<ComboBox Name="cmbSelectedAddressRegion"
SelectedValue="{Binding Path=selectedAddressItemRegion, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding Path=selectedAddressIsEnabled}"
Style="{StaticResource style_flat_ComboBox}"></ComboBox>
<ComboBox Name="cmbSelectedAddressCities"
SelectedValue="{Binding Path=selectedAddressIdCities, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="id"
SelectedValuePath="id"
ItemsSource="{Binding ElementName=cmbSelectedAddressRegion, Path=SelectedItem.Cities}" IsEnabled="{Binding Path=selectedAddressIsEnabled}"
Style="{StaticResource style_flat_ComboBox}"></ComboBox>
Lorsque je clique sur une région cmbSelectedAddressRegion les cmbSelectedAddressCities est peuplé correctement
J'ai aussi une machine virtuelle vmCustomer
avec beaucoup de DependencyProperties
(parmi eux selectedAddressItemRegion
et selectedAddressIdCities
) Lorsque je sélectionne le client dans la liste principale (un autre combobox dans la fenêtre qui contient la liste des clients) Je vois le cmbSelectedAddressRegion
montrant correctement la région, mais je ne vois rien dans le cmbSelectedAddressCities
. Encore une fois, si je clique sur le cmbSelectedAddressRegion
le cmbSelectedAddressCities
est peuplé et les villes (dans le vmCustomer
) est sélectionné
Le cmbSelectedAddressRegion.itemssource
est limitée (dans bon augure behind) à un ObservableCollection(of vmAddressRegion)
Chaque vmAddressRegion
actuellement sélectionné a, entre autres DependencyProperties, un cities
propriétés qui renvoie un ObservableCollection(of vmAddressCities)
Le ObservableCollection(of vmAddressRegion)
est rempli lors de la création de la fenêtre. En même temps, pour chaque élément de ObservableCollection(of vmAddressRegion)
(de type vmAddressRegion
) la ObservableCollection(of vmAddressCities)
est remplie avec les éléments correspondants)
J'espère que je suis assez clair Toute suggestion comment résoudre le problème ci-dessus (le cmbSelectedAddressCities
ne pas être "peuplé")?
Merci pour toute aide
y nos ViewModels ne doivent pas avoir DependencyProperties. –
pourquoi? peut-être que j'ai tout faux? J'ai commencé à utiliser MVVM en lisant ici [link] (http://community.visual-basic.it/alessandro/archive/2010/06/15/29563.aspx). – doGmaI
Votre lien est en langue italienne, donc je ne pouvais pas comprendre beaucoup de choses (c'est aussi dans VB qui à ce stade blesse mes yeux juste pour le regarder), mais d'après ce que je vois, il fait 'INotifyPropertyChanged' dans le ViewModels, qui supprime le besoin de DependencyProperties –