我确定我已经在 StackOverflow 上找到了这个,但我似乎不够聪明,无法再次找到它
我想要做的是(在 WPF 中使用 MVVM)是这样的:
cmbSelectedAddressRegion: populated with the list of region
cmbSelectedAddressCities: populated with the list of cities in that region
当用户点击某个地区时cmbSelectedAddressRegion
,items 中的cmbSelectedAddressCities
应该只有该地区的城市
我有这样的 XAML
<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>
当我单击 cmbSelectedAddressRegion 中的一个区域时, cmbSelectedAddressCities 已正确填充
我还有一个vmCustomer
带有很多DependencyProperties
(其中selectedAddressItemRegion
和selectedAddressIdCities
)的虚拟机当我从主列表中选择客户(窗口中另一个包含客户列表的组合框)时,我看到cmbSelectedAddressRegion
正确显示区域,但我没有看到中的任何东西cmbSelectedAddressCities
。再次,如果我单击cmbSelectedAddressRegion
已cmbSelectedAddressCities
填充并选择当前选定的城市(在 中vmCustomer
)
有cmbSelectedAddressRegion.itemssource
界(在文件后面的 bode 中)到一个ObservableCollection(of vmAddressRegion)
EachvmAddressRegion
有,在其他 DependencyProperties 中,一个cities
属性返回一个ObservableCollection(of vmAddressCities)
ObservableCollection(of vmAddressRegion)
创建窗口时填充。同时,对于ObservableCollection(of vmAddressRegion)
(类型vmAddressRegion
)的每个项目,ObservableCollection(of vmAddressCities)
都填充了相应的项目)
我希望我已经足够清楚了任何建议如何解决上述问题(cmbSelectedAddressCities
没有被“填充”)?
谢谢你的帮助