ListBox SelectionChanged事件:获取更改前的值

Lou*_*ira 3 c# wpf xaml

我正在开发一个C#wpf应用程序,其中有一个列表框,我想获得在更改发生之前选择的元素的值

我成功地以这种方式获得了新的价值:

<ListBox SelectionChanged="listBox1_SelectedIndexChanged"... />

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        test.add(listBox1.SelectedItem.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

但我需要一些东西listBox1.UnselectedItem来获得在变化期间未被选中的元素.任何的想法 ?

Kri*_*ian 6

SelectionChangedEventArgs有一个名为的属性RemovedItems,其中包含使用新选择删除的项目列表.您可以替换EventArgs使用SelectionChangedEventArgs和访问参数的属性(铸造也将工作,因为它是一个子类).

    private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        List<string> oldItemNames = new List<string>();
        foreach(var item in e.RemovedItems)
        {
            oldItemNames.Add(item.ToString());
        }
    }
Run Code Online (Sandbox Code Playgroud)