我有一个组合框和一个按钮。当我单击按钮时,它应该更改所选值,然后在项目更改时触发代码。不幸的是,在我设置组合框的选定值之前,选择更改了事件。
我的组合框初始化代码:
ListCB.SelectedValuePath = "Key";
ListCB.DisplayMemberPath = "Value";
ListCB.Items.Add(new KeyValuePair<int, string>(1, "One"));
ListCB.SelectedValuePath = "Key";
ListCB.DisplayMemberPath = "Value";
ListCB.Items.Add(new KeyValuePair<int, string>(2, "Two"));
ListCB.SelectedValuePath = "Key";
ListCB.DisplayMemberPath = "Value";
ListCB.Items.Add(new KeyValuePair<int, string>(3, "Three"));
我的按钮代码:
ListCB.SelectedValue = 3;
我的选择更改事件:
private void ListCB_Change(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show("Value is now: " + ListCB.SelectedValue);
}
如果我从组合框中选择1并单击按钮,会发现现在的值是:一个而不是三个。
我使用了错误的活动吗?或者我使用错误的方法更改所选值?
答案 0 :(得分:0)
使用SelectionChangedEventArgs
获取新选择的项目
private void ListCB_Change(object sender, SelectionChangedEventArgs e)
{
var item = (KeyValuePair<int, string>)e.AddedItems[0];
MessageBox.Show("Value is now: " + item.Key);
}