2012-04-03 67 views
0

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

+1

你能提供有關你如何設置文本和子項在被繼承的ListViewItem類中的ListViewItem的一點點更詳細?此外,你的ListView的屬性是什麼? – scwagner 2012-04-03 20:13:52

+0

當然;我會在上面追加它。 – 2012-04-03 20:43:22

+0

如果您使用View = Details,那麼不要忘記添加ColumnHeaders。沒有任何你不會看到添加的項目。 – 2012-04-03 20:54:16

回答

1

你嘗試先創建一個ListViewItem,然後添加到列表,而不是使用 this.listApplications.Items.Add (LegApp);

你能否提供更多細節之處的代碼片斷

+0

我得到它的工作 - 雖然我現在還記不得現在如何! – 2012-04-05 04:41:42

相關問題