ComboBox- SelectionChanged事件具有旧值,而不是新值

C#、. NET 4.0,VS2010。

WPF的新手。我的MainWindow上有一个ComboBox。我迷上了所述组合框的SelectionChanged事件。但是,如果我在事件处理程序中检查组合框的值,则它具有旧值。这听起来更像是“

SelectionChanging”事件,而不是SelectionChanged事件。

实际发生选择后,如何获得ComboBox的新值?

目前:

this.MyComboBox.SelectionChanged += new SelectionChangedEventHandler(OnMyComboBoxChanged);

...

private void OnMyComboBoxChanged(object sender, SelectionChangedEventArgs e)

{

string text = this.MyComboBox.Text;

}

注意,如果使用在事件args,egeOriginalSource事件中传递的对象,则会得到相同的行为。

回答:

根据MSDN, e.AddedItems

获取包含所选项目的列表。

因此,您可以使用:

private void OnMyComboBoxChanged(object sender, SelectionChangedEventArgs e)

{

string text = (e.AddedItems[0] as ComboBoxItem).Content as string;

}

你也可以使用SelectedItem,如果你使用string值的Items来自sender

private void OnMyComboBoxChanged(object sender, SelectionChangedEventArgs e)

{

string text = (sender as ComboBox).SelectedItem as string;

}

要么

private void OnMyComboBoxChanged(object sender, SelectionChangedEventArgs e)

{

string text = ((sender as ComboBox).SelectedItem as ComboBoxItem).Content as string;

}

由于ContentSelectedItem都是对象,一种更安全的方法是使用.ToString()而不是as string

以上是 ComboBox- SelectionChanged事件具有旧值,而不是新值 的全部内容, 来源链接: utcz.com/qa/413391.html

回到顶部