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;
}
由于Content
和SelectedItem
都是对象,一种更安全的方法是使用.ToString()
而不是as string
以上是 ComboBox- SelectionChanged事件具有旧值,而不是新值 的全部内容, 来源链接: utcz.com/qa/413391.html