C# 从文本框中搜索Xml文件元素,并在listview C中获得结果#

C# 从文本框中搜索Xml文件元素,并在listview C中获得结果#,c#,xml,listview,search,C#,Xml,Listview,Search,在我的程序中,我有两张表格。第一个是将信息从文本框保存到xml文件,第二个是根据我在文本框中编写的文本搜索xml元素,并在listview中显示它们 问题是,当我得到结果时,在listview中一切看起来都很好,但当我在listview中单击该项时,我得到了索引为0的xml元素的所有信息 这是我用来搜索xml和SelectedindexChanged的代码: string path = Environment.GetFolderPath(Environment.SpecialFolder.MyD

在我的程序中,我有两张表格。第一个是将信息从文本框保存到xml文件,第二个是根据我在文本框中编写的文本搜索xml元素,并在listview中显示它们

问题是,当我得到结果时,在listview中一切看起来都很好,但当我在listview中单击该项时,我得到了索引为0的xml元素的所有信息

这是我用来搜索xml和SelectedindexChanged的代码:

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);


            XmlDocument cDoc = new XmlDocument();

            cDoc.Load(path + "\\MyProgram\\Data.xml");
            var doc = XDocument.Load(path + "\\MyProgram\\Data.xml");


            var q = from el in doc.Root.Elements("Register")
                    let str = el.Element("Name").Value
                    where str.ToLower().Equals(textBox1.Text)
                    select new ListViewItem(el.Elements().Select(x => x.Value).ToArray());


            listView1.Items.AddRange(q.ToArray());
对于selectedIndexChange

 name.Text = History[listView1.SelectedItems[0].Index].Name;
 lastname.Text = History[listView1.SelectedItems[0].Index].Lastname;

请帮助我,因为我搜索解决方案的时间已经开始了一周。

请尝试使用ListView的
SelectedIndex
属性,而不是
SelectedItems[0]。索引

更新:使用WinForms查看此问题:


如果您的意思是这样的:name.Text=History[listView1.SelectedIndex].name;它给出了一个错误listview没有Selectedindex它只有SelectedItem我也尝试过这个,但它再次给出了XML数据文件的索引,而不是来自listview。“q”是一个数组(ToArray()),那么为什么要执行AddRange(q.ToArray)?如果q是一个字符串,则向listView1添加字符。listview没有问题。唯一的问题是SelectedIndexChange从XML文件中获取索引号。例如,在搜索一个名称后,我在Listview的第一行有一个结果,XML中的名称在索引5中,但Listview中的第一行有索引0,因此当我单击它时,我在XML fil上有索引0的所有信息,这是错误的。
listView1.SelectedIndices[0]