我动态创建ListViewItem的后裔:我的动态创建ListViewItems没有在我的ListView中显示
class Application : ListViewItem {
. . .
class LegacyApplication : Application {
我存储这些先在obects的列表:
private List<object> legacyApps = new List<object>();
..this方式:
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:
公共STRI NG ExePath 公共字符串IconFileName 公共字符串类别 公开名单分类
LegacyApplication不会增加更多的属性来(我们的)应用程序类。
我不确定受访者下面的意思是“子项目” - ListViewItems是ListView组的子项,也许...?
更新了未经请求的信息(TMI):
OK,我想我可以添加列,这样,一旦所有的组分配给ListView:
for(var item in listApplications.Groups) {
listApplications.Columns.Add(item)
}
...但现在,我该如何添加特定的ListViewItems到特定的列?
谈到了这一点::
它前往(排序)下班后更新
listApplications.View = View.Details;
...获取要显示的项目。然而,文本被截断,造成我在这里提出一个问题:
I need to display the entire Text of my ListViewItems (not truncated)
你能提供有关你如何设置文本和子项在被继承的ListViewItem类中的ListViewItem的一点点更详细?此外,你的ListView的属性是什么? – scwagner 2012-04-03 20:13:52
当然;我会在上面追加它。 – 2012-04-03 20:43:22
如果您使用View = Details,那么不要忘记添加ColumnHeaders。没有任何你不会看到添加的项目。 – 2012-04-03 20:54:16