WPF 列表框,当选择多个项目时,为什么省略了多项目选择中的第一项

本文关键字:项目 选择 一项 为什么省 列表 WPF | 更新日期: 2023-09-27 18:35:29

嗨,我有一个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只包含初始选择之外的项目吗?我该怎么做才能获得完整的项目集合?请注意,我必须使用选择模式="扩展"。省略第一项是有意的还是错误?

WPF 列表框,当选择多个项目时,为什么省略了多项目选择中的第一项

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

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