【发布时间】:2010-06-02 19:53:10
【问题描述】:
C#、.NET 4.0、VS2010。
WPF 新手。我的 MainWindow 上有一个 ComboBox。我挂钩了所述组合框的 SelectionChanged 事件。但是,如果我检查事件处理程序中组合框的值,它具有旧值。这听起来更像是“SelectionChanged”事件,而不是 SelectionChanged 事件。
选择实际发生后如何获取 ComboBox 的新值?
目前:
this.MyComboBox.SelectionChanged += new SelectionChangedEventHandler(OnMyComboBoxChanged);
...
private void OnMyComboBoxChanged(object sender, SelectionChangedEventArgs e)
{
string text = this.MyComboBox.Text;
}
注意,如果我使用在事件参数中传递的对象,我会得到相同的行为,例如e.原始来源。
【问题讨论】:
-
我偶然发现了同样的问题 - 谢谢!这实际上是一个错误吗?首先应该将其命名为
SelectionChanging? -
检查 ComboBox.OnSelectionChanged 方法的源代码表明它发布了事件并然后处理了选定的项目。 In a related problem,我使用反射强制它处理来自我的 SelectionChanged 事件处理程序的选定项目。
标签: c# wpf combobox .net-4.0 selectionchanged