У меня есть статический словарь, который я использую в качестве ItemsSource комбинированного списка:
public static Dictionary<string, Country> Countries => new Dictionary<string, Country>()
{
{ "CY", new Country( "CY", "Cyprus" ), ... },
{ "B", new Country( "B", "Belgium", ... ) },
...
etc
Ключ будет похож на «CY», а значение - это страна, которая имеет некоторые свойства, среди которых FullName(«Кипр») и ShortName, например «CY» (также используется в качестве ключа)
ComboBox выглядит следующим образом:
<ComboBox
x:Name="CountryCb"
DisplayMemberPath="Value.ShortName"
ItemsSource="{Binding Source={x:Static cf:Configuration.Instance}, Path=Countries}"
SelectedValuePath="Value"
SelectedValue="{Binding SelectedCountry , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
Свойство SelectedCountry имеет тип Country и должно быть установлено, выбравнекоторый элемент из выпадающего списка ComboBox.
Это хорошо работает: доступ к установщику SelectedCountry установлен и установлен.
Теперь проблемный: у меня есть другой статический словарь
public static Dictionary<int, CBListItem> SectionTypeList => new Dictionary<int, CBListItem>()
{
{ 27, new CBListItem( "...", "...", "..." ) },
...
etc
это список данных типа Section.
CBListItem имеет такие свойства, как FullName и ShortName, которые являются строками.
Я хочу использовать ключ словаря (int, 27), чтобы установитьСвойство Section SectionType через ComboBox:
<ComboBox
x:Name="SectionsCb"
DisplayMemberPath="Value.FullName"
ItemsSource="{x:Static vm:MainViewModel.SectionTypeList}"
SelectedValuePath="Key"
SelectedValue="{Binding SectionType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Отображение работает хорошо (показывает FullName), но не параметр SectionType (int). Выбор другого параметра в раскрывающемся списке ComboBox не дает доступа к установщику SectionType (как показывает точка останова). По какой-то причине «ключ» не работает.
Вопрос: как мне заставить этот второй ComboBox работать так же, как первый?