获取ListView中选择的Item的索引

Gle*_*enn 8 c# indexing wpf listview

我已经搜索了大约一个小时,但找不到最佳解决方案.我正在从VB.NET迁移到C#Forms和C#WPF.没关系......所以我将此代码用于C#表单并且它可以工作,但不能在C#WPF中使用

 if (ListView1.SelectedItems.Count > 0)
            {
                for (lcount = 0; lcount <= ListView1.Items.Count - 1; lcount++)
                {
                    if (ListView1.Items[lcount].Selected == true)
                    {
                        var2 = lcount;
                        break;
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

这是我想要获取列表框中单击项目的索引的方式.我在.SELECTED中有错误

请帮忙.

Roh*_*ats 21

你可以SelectedIndex从listView 获得.无需遍历所有项目,因为根据您的代码,您似乎对所选项目的索引感兴趣.

var2 = ListView1.SelectedIndex;
Run Code Online (Sandbox Code Playgroud)

要么

如果只对第一个索引感兴趣,这将有效:

if (lst.SelectedItems.Count > 0)
{
    var2 = lst.Items.IndexOf(lst.SelectedItems[0]);
}
Run Code Online (Sandbox Code Playgroud)


小智 5

对于 Visual Studio 2015,SelectedIndex似乎不可用。相反,您可以使用SelectedIndices[x]wherex=0将为您提供第一个选定的项目:

listView.SelectedIndices[0]
Run Code Online (Sandbox Code Playgroud)

您还可以将该MultipleSelect属性设置false为一次仅允许选择一项。


Ala*_*inD 5

如果使用的是.NET Compact Framework,SelectedIndex则不受支持。对于一般解决方案,我更喜欢SelectedIndices

ListView.SelectedIndexCollection indices = lst.SelectedIndices;
if (indices.Count > 0)
{
    // Do something with indices[0]
}
Run Code Online (Sandbox Code Playgroud)