我正在动态地创建ListViewItem后代:
class Application : ListViewItem {
. . .
class LegacyApplication : Application {我首先将这些存储在一张表中:
private List<object> legacyApps = new List<object>();..this方式:
if (ldbc.appIsLegacy(sPathOfExe)) {
legacyApp = new LegacyApplication(sApp, sTitle, sDesc, sIconFileName, sPathOfExe, appCategoriesForCurrentApp);
}
legacyApps.Add(legacyApp);然后,以...and的方式将它们添加到主表单的ListView中:
foreach (LegacyApplication LegApp in legacyApps) {
this.listApplications.Items.Add(LegApp);
}...but 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;
}公共字符串ExePath公共字符串IconFileName公共字符串类别公共列表类别
LegacyApplication没有向(我们的)应用程序类添加进一步的属性。
我不知道下面的回答者所说的“子项目”是什么意思-- ListViewItems是ListView组的子项,也许.?
更新未请求的信息(TMI?):
好的,我想一旦所有组都分配给ListView,我就可以这样添加列了:
for(var item in listApplications.Groups) {
listApplications.Columns.Add(item)
}...but现在,我如何向特定列中添加特定的ListViewItems?
在使其(某种程度上)工作后更新:
评论如下:
listApplications.View = View.Details;...gets要显示的项目。然而,文本被截断,这使我在这里提出了另一个问题:
I need to display the entire Text of my ListViewItems (not truncated)
发布于 2012-04-04 08:05:35
您是否尝试先创建一个ListViewItem,然后添加到列表中,而不是使用this.listApplications.Items.Add(LegApp);
您能提供更多的代码片段详细信息吗?
https://stackoverflow.com/questions/10000613
复制相似问题