【发布时间】:2018-06-12 14:35:29
【问题描述】:
我正在 Visual Studio 2017 中创建一个 winforms 应用程序,我正在使用一个
List<KeyValuePair<string, string>>
数据示例如下:
List<KeyValuePair<ABC, 123>>
List<KeyValuePair<ABC, 456>>
List<KeyValuePair<ABC, 789>>
List<KeyValuePair<DEF, 123>>
List<KeyValuePair<DEF, 233>>
我尝试在 ListView 中显示它,我希望在其中有这样的东西:
-
ABC
- 123
- 456
- 789
-
防御
- 123
- 233
ABC 和 DEF 只能选择。我尝试编写代码来执行此操作,但不幸的是它只显示没有子项的 ABC 和 DEF。
我写的代码是:
workOrderClusters = GetItac.FilterWorkOrderClusters();
// GetItac.FilterWorkOrderClusters() is a
List<KeyValuePair<string,string>>
string current; string previous,
foreach (var workOrderCluster in workOrderClusters)
{
current = workOrderCluster.Key;
if (current != previous)
{
var listViewItem = new ListViewItem(workOrderCluster.Key);
foreach (var cluster in workOrderClusters)
{
if (cluster.Key == current)
{
listViewItem.SubItems.Add(cluster.Value);
}
}
}
previous = current;
listView1.Items.Add(listViewItem);
我的问题是,有没有办法让 ListView 按预期显示?
【问题讨论】:
-
看起来像 TreeView。
-
@LarsTech 这不可能吗?
-
不确定您为什么使用 ListView。无论哪种方式,这都是一个调试问题。在您的代码上放置一个调试停止并运行它,当它停止时,逐行遍历代码以查看发生了什么并检查值。您将看到为什么您的子项从未被添加。
-
@LarsTech 我实际上已经调试了代码,它添加了 SubItems,但它从未在 ListView 中显示它们。
-
还要确保您使用的是详细信息视图并且您有一些列。
标签: c# winforms listview subitem