我動態創建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