SelectionChangedEventArgs

SelectionChangedEventArgs

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

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

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

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        test.add(listBox1.SelectedItem.ToString());
    }


但是我需要类似listBox1.UnselectedItem的东西来获取在更改期间未选择的元素。任何的想法 ?

最佳答案

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());
        }
    }

10-04 23:08