我显然不理解如何使用SelectedValue在UWP中更改组合框显示的项目。
XAML很简单。
XAML很简单。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ComboBox x:Name="comboBoxColor" />
</Grid>
代码后端并不是很深入。
public MainPage()
{
this.InitializeComponent();
}
public void page_Loaded(object sender, RoutedEventArgs e)
{
populateDdlMultiColor();
comboBoxColor.SelectedValue = Colors.Red;
//comboBoxColor.SelectedIndex = 0 works tho
}
private void populateDdlMultiColor()
{
comboBoxColor.ItemsSource = ColorDict();
comboBoxColor.DisplayMemberPath = "Key";
comboBoxColor.SelectedValuePath = "Value";
}
private Dictionary<string,Color> ColorDict()
{
Dictionary<string, Color> L = new Dictionary<string, Color>();
L.Add("reddish",Colors.Red);
return L;
}
这显然是玩具问题,但它与我的代码失败方式相同:在设置了SelectedValue之后,组合框位于索引-1并且SelectedValue为null。如果我将SelectedIndex设置为正确的值[见注释],则组合框可以正常工作 - 它已经被加载。