使用选定值时,组合框选择更改事件触发选择更改(C#WPF)

时间:2017-08-20 09:19:38

标签: c# wpf

我有一个组合框和一个按钮。当我单击按钮时,它应该更改所选值,然后在项目更改时触发代码。不幸的是,在我设置组合框的选定值之前,选择更改了事件。

我的组合框初始化代码:

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并单击按钮,会发现现在的值是:一个而不是三个。

我使用了错误的活动吗?或者我使用错误的方法更改所选值?

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);
}