如何在ListView控件中获取选中项的索引?

问题描述 投票:0回答:1

我有一个ListView控件(SfListView),我需要知道每个被选中的项目的索引。

enter image description here

在上面的图片中,这将是1,3,4。

CheckedItems Collection没有索引。

DataSource 属性和数据一起有索引,但当然不包含检查状态。

我试过的另一件事是将它管理在 ItemChecked 事件这样的。

private void lstAppNamePTT_ItemChecked(object sender, Syncfusion.WinForms.ListView.Events.ItemCheckedEventArgs e)
        {
            if(e.NewState == CheckState.Checked) {
                AppChecked.Add(e.ItemIndex);
            } else
            {
                AppChecked.Remove(e.ItemIndex);
            }
        }

我没有办法在事件之外做这件事。

我想到了迭代 DataSource 并找到关键字段的值和检索索引,但这是正确的做法吗?

listview syncfusion
1个回答
2
投票

我把我从SyncFusion论坛上得到的答案放在这里。

链接

它可以通过检查检查项目与View of中的项目来实现。SfListVIew 并获取其索引值。

ObservableCollection<int> selectedIndex = new ObservableCollection<int>(); 

            foreach (var allItems in sfListView1.View.Items) 
            { 
                foreach (var checkedItem in sfListView1.CheckedItems) 
                { 
                    if(allItems == checkedItem) 
                    { 
                        selectedIndex.Add(sfListView1.View.DisplayItems.IndexOf(allItems)); 
                    } 
                } 
            } 
© www.soinside.com 2019 - 2024. All rights reserved.