C# WinForms ListView-从所选字符串项获取源对象
我正在WinForms中构建一个简单的语言学习助手应用程序。它的一个模块是字典。它由集合组成,单词存储在集合中。用户可以创建一组新单词,并将其中一些单词存储在其中 我正在用列在ListView中打印选定的一个或多个集合中的所有单词。在CheckedListBox中选中一个或多个集合后,列表将清除并将单词作为字符串变量打印 当有几个集合被检查并列出了它们的单词,而用户想要编辑其中一个列出的单词时,麻烦就来了。我不能使用索引,例如列表项的索引等于集合中的单词项,因为这些列表字符串项来自不同的集合 有没有办法从ListView项获取源对象?我没有将对象添加到列表中,只是添加了它们的一些变量,但它们是否以某种方式连接 谢谢你的帮助。 干杯 编辑:向我解释为什么设置标记不是解决方案: 所有集合都存储在词典集合列表中。每个集合包含一个单词列表,单词存储在其中 如何填写列表视图:C# WinForms ListView-从所选字符串项获取源对象,c#,winforms,listview,C#,Winforms,Listview,我正在WinForms中构建一个简单的语言学习助手应用程序。它的一个模块是字典。它由集合组成,单词存储在集合中。用户可以创建一组新单词,并将其中一些单词存储在其中 我正在用列在ListView中打印选定的一个或多个集合中的所有单词。在CheckedListBox中选中一个或多个集合后,列表将清除并将单词作为字符串变量打印 当有几个集合被检查并列出了它们的单词,而用户想要编辑其中一个列出的单词时,麻烦就来了。我不能使用索引,例如列表项的索引等于集合中的单词项,因为这些列表字符串项来自不同的集合 有
private void UpdateList()
{
wordsListView.Items.Clear();
List<Word> currentSetWordList;
foreach (DictionarySet ds in setCheckedListBox.CheckedItems) //List<DictionarySets> dictionarySets inserted, DisplayMember set to its Name property
{
currentSetWordList = ds.words;
foreach (Word w in currentSetWordList)
{
ListViewItem newItem = new ListViewItem("--"); //for now a string, later an enum
newItem.Tag = ds;
newItem.SubItems.Add(w.GermanTranslation); //string property
newItem.SubItems.Add(w.PolishTranslation); //string property
wordsListView.Items.Add(newItem);
}
}
}
在这种情况下,程序循环遍历每个集合及其单词列表并打印单词。他们的标记到处都是字典集。您可以在ListViewItem上使用tag属性。标记属性:
获取或设置一个对象,该对象包含要与该项关联的数据
简而言之,在创建列表视图的每个项目时,可以将对象添加为标记。这样,当用户选择一个项目时,您就可以将其取回
有关详细信息,请参阅。谢谢您的回答。我已经了解了这一点,但这并不能解决问题:每个集合都是DictionarySet对象,它们存储在一个列表中。当我标记ListView项时,所有项都会得到DictionarySet标记,这样它们就不会有差异。