我有两个组合框,其中Parent必须显示国家/地区列表,子组合必须显示所选国家/地区的城市列表.数据存储在Dictionary<Int32, List<String>>具有名称的数据中CountriesCitiesList.我有以下代码
<ComboBox x:Name="cbCountriesList"
DataContext="{Binding CountriesCitiesList}"
IsSynchronizedWithCurrentItem="true">
</ComboBox>
<ComboBox x:Name="cbCitiesList" VirtualizingStackPanel.IsVirtualizing="True"
ItemsSource="{Binding CountriesCitiesList}"
IsSynchronizedWithCurrentItem="true">
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
问题是在城市组合中我无法显示所选国家的城市列表.我觉得它错过了最后一步.
如果您的词典CountriesCitiesList包含国家ID作为键,列表作为城市名称,您可以用纯xaml方式绑定它 - 如下所示 -
<ComboBox x:Name="cbCountriesList"
ItemsSource="{Binding CountriesCitiesList}"
IsSynchronizedWithCurrentItem="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox x:Name="cbCitiesList"
ItemsSource="{Binding SelectedItem.Value, ElementName=cbCountriesList}"
IsSynchronizedWithCurrentItem="True"/>
Run Code Online (Sandbox Code Playgroud)
我假设您要在cbCountriesList中显示国家ID,因为您使用int类型的键将其绑定到字典.