我动态创建的ListViewItems没有显示在我的ListView中
本文关键字:显示 我的 ListView 动态 创建 ListViewItems | 更新日期: 2023-09-27 18:29:58
我正在动态创建ListViewItem子体:
class Application : ListViewItem {
. . .
class LegacyApplication : Application {
我首先将这些存储在obects列表中:
private List<object> legacyApps = new List<object>();
这边:
if (ldbc.appIsLegacy(sPathOfExe)) {
legacyApp = new LegacyApplication(sApp, sTitle, sDesc, sIconFileName, sPathOfExe, appCategoriesForCurrentApp);
}
legacyApps.Add(legacyApp);
然后我以这种方式将它们添加到主窗体上的ListView中:
foreach (LegacyApplication LegApp in legacyApps) {
this.listApplications.Items.Add(LegApp);
}
但是ListView不显示它们。它显示我创建的ListView组(每个ListViewItem都分配给其中一个组),但不显示ListViewItems本身。。。
更新了请求的信息:
ListViewItem子代的构造函数如下所示:
public LegacyApplication(String AAppName, String ATitle, String ADesc, String AIconFileName, String APathOfExe, List<String> ACategories) {
base.Name = String.Format("legapplvi{0}", AAppName);
base.Text = ATitle; // "Title" is a short description - between exe name and Description
base.ToolTipText = ADesc;
base.EnsureVisible();
// "base" above means ListViewItem; "base" below refers to our Application class*
base.Categories = ACategories;
base.ExePath = APathOfExe;
base.IconFileName = AIconFileName;
}
- 它将以下属性添加到ListViewItem:
公共字符串ExePath公共字符串IconFileName公共字符串类别公共列表类别
LegacyApplication没有向(我们的)Application类添加其他属性。
我不确定下面的受访者所说的"子项"是什么意思——ListViewItems可能是ListView组的子项。。。?
用未请求的信息更新(TMI?):
好吧,我想我可以用这种方式添加列,一旦所有的组都分配给ListView:
for(var item in listApplications.Groups) {
listApplications.Columns.Add(item)
}
但是现在,如何将特定的ListViewItems添加到特定的列中?
在完成(某种)工作后更新:
对此进行评论:
listApplications.View = View.Details;
获取要显示的项目。然而,文本被截断了,这让我在这里提出了另一个问题:
我需要显示ListViewItems的整个文本(未截断)
您是否尝试先创建ListViewItem,然后添加到列表中,而不是使用this.listApplications.Items.Add(LegApp);
您能提供更多关于代码片段的详细信息吗?