两个组合框之间的WPF主/明细数据绑定

JPP*_*JPP 0 data-binding wpf

我有两个组合框,其中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)

问题是在城市组合中我无法显示所选国家的城市列表.我觉得它错过了最后一步.

Roh*_*ats 6

如果您的词典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类型的键将其绑定到字典.