WPF ListBox,当选择多个项目时,为什么多项目选择中的第一项被省略?

时间:2014-12-29 10:38:50

标签: c# wpf events listbox

您好我有ListBox并在xaml中设置如下:

<dxdo:LayoutPanel Caption="Raw Data File Names" ItemWidth="2*">
                    <ListBox ItemsSource="{Binding FilteredFileNames}" SelectionMode="Extended" SelectionChanged="Selector_OnSelectionChanged"/>
                </dxdo:LayoutPanel>

每当我选择多个项目时(通过降档和鼠标点击)我在代码隐藏中处理事件时,我注意到第一个项目从未包含在项目数组中:

private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var vm = DataContext as HistoricalDataImportRawDataViewModel;
        vm.SelectedFileNames = e.AddedItems.Cast<string>().ToList();
    }

我做错了什么?是因为AddedItems只包括初始选择之外的项目吗?我该怎么做才能获得完整的物品集合?请注意,我必须使用SelectionMode =&#34; Extended&#34;。遗漏了第一个项目还是一个错误?

1 个答案:

答案 0 :(得分:2)

AddedItems属性告知哪个项目已添加到所选项目中。如果您对所选的所有项目感兴趣,则必须访问ListBox属性SelectedItems

    var listbox = (ListBox) sender;
    var selectedItems = listbox.SelectedItems
         .Cast<string>()
         .ToList();