SelectionChanged显示旧值

时间:2014-05-25 13:48:17

标签: c# wpf

ComboBox上的SelectionChanged事件仍显示为显示旧值。我需要获取它被更改为的值。有什么想法?。

目前在我使用的XAML代码上:

SelectionChanged="TxtProductFamily_SelectionChanged"

C#

private void TxtProductFamily_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show(TxtProductFamily.Text);
}

3 个答案:

答案 0 :(得分:2)

如果您需要有关已选择/未选择内容的准确信息,那么Selector.SelectionChanged事件会将SelectionChangedEventArgs作为参数从中获取2个列表

AddedItems

  

获取包含已选择项目的列表。

RemovedItems

  

获取包含未选中的项目的列表。

答案 1 :(得分:2)

您想使用AddedItems中的EventArgs

private void TxtProductFamily_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    foreach (var addedItem in e.AddedItems)
    {
        var item = addedItem as String; // <-- Cast to whatever type here, string, ViewModel, int, etc.
        if (item != null)
        {
            MessageBox.Show(item);
            break;
        }
    }
}

您绑定的收集类型是什么?如果它是一个字符串集合,则需要在显示它之前先将其强制转换。

答案 2 :(得分:1)

ComboBox.Text在ComboBox.SelectionChange事件触发后更新。

通过ComboBox.SelectedItem \ ComboBox.SelectedValue获取值。