[英]How to get the indexes of checked items in a ListView Control
我有一个 ListView 控件 (SfListView),我需要知道每个被检查项目的索引。
在上面的图片中,这将是 1, 3,4
CheckedItems
Collection 没有索引。
DataSource
属性具有索引以及数据,但当然它不包含检查的 state。
我尝试的另一件事是在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
并找到关键字段值并检索索引,但这样做是否正确?
我把我从 SyncFusion 论坛得到的答案放在这里:
可以通过在SfListVIew
的 View 中检查选中的项目并获取它们的索引值来实现:
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));
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.