我有一个静态字典,用作组合框的ItemsSource:
public static Dictionary<string, Country> Countries => new Dictionary<string, Country>()
{
{ "CY", new Country( "CY", "Cyprus" ), ... },
{ "B", new Country( "B", "Belgium", ... ) },
...
etc
密钥类似于“ CY”,并且值是一个具有某些属性的国家/地区,其中包括全名(“塞浦路斯”) 以及诸如“ CY”(也用作键)之类的ShortName
组合框如下:
<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
x:Name="SectionsCb"
DisplayMemberPath="Value.FullName"
ItemsSource="{x:Static vm:MainViewModel.SectionTypeList}"
SelectedValuePath="Key"
SelectedValue="{Binding SectionType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
显示效果很好(显示全名),但是SectionType(int)的设置却不好。 在ComboBox下拉菜单中选择另一个选项将无法访问 SectionType setter(如断点所示)。 由于某些原因,“密钥”不起作用。
问题:如何使第二个ComboBox像第一个一样工作?