2014-01-28 95 views
0

我想使用列表從ObjectListView庫填充DataTreeListView。不幸的是,我無法實現它,即使列表內有一些項目,也沒有任何顯示。使用列表填充ObjectListView

Class.cs 

public class Class 
{ 
    protected string xName; 
    protected int xId; 
    protected int xParentId; 
    protected int happinessStatus; 
    protected int salaryStatus; 

    public Class() 
    { 
    this.xName = ""; 
    this.xId = 0; 
    this.xParentId = 0; 
    this.happinessStatus = 0; 
    this.salaryStatus = 0; 
    } 

    public String Name 
    { 
    get { return this.xName; } 
    set { this.xName = value; } 
    } 

    public int Id 
    { 
    get { return this.xId; } 
    set { this.xId = value; } 
    } 

    public int ParentId 
    { 
    get { return this.xParentId; } 
    set { this.xParentId = value; } 
    } 

    public int HappinessStatus 
    { 
    get {return this.happinessStatus; } 
    set { this.happinessStatus = value; } 
    } 

    public int SalaryStatus 
    { 
    get { return this.salaryStatus; } 
    set { this.salaryStatus = value; } 
    } 

    public static List<Class> GetList() 
    { 
    List<Class> oList = new List<Class>(); 
    Class oClass = new Class(); 

    oClass.Name = "Person A"; 
    oClass.Id = 1; 
    oClass.ParentId = 0; 
    oClass.HappinessStatus = 1; 
    oClass.SalaryStatus = 1000; 
    oList.Add(oClass); 

    oClass.Name = "Person B"; 
    oClass.Id = 2; 
    oClass.ParentId = 1; 
    oClass.HappinessStatus = 1; 
    oClass.SalaryStatus = 2000; 
    oList.Add(oClass); 

    oClass.Name = "Person C"; 
    oClass.Id = 3; 
    oClass.ParentId = 1; 
    oClass.HappinessStatus = 1; 
    oClass.SalaryStatus = 1000; 
    oList.Add(oClass); 

    return oList; 
    } 

在MainForm中的Load事件,

我做了以下內容:

List<Class> list = new List<Class>(); 
    list = Class.GetList(); 
    dataTreeListView1.DataSource = list; 

在設計師看來,我已經得到了縱橫名稱設置爲每個也創造列除Id和ParentId之外的類文件的屬性。

KeyAspectName:身份證 ParentKeyAspectName:的ParentId

我做了一個小消息框顯示在列表中的項目的數量,其正確的,但沒有顯示出對dataTreeListView控制。

我可以知道我的編碼有什麼問題嗎?

+0

Winforms,WPF,Asp.Net是什麼平臺? – ElectricRouge

回答

1

您是否相應地設置了KeyAspectName,ParentKeyAspectNameRootKeyValue

如果您使用設計做到了,RootKeyValue可能是你的問題:

由於在IDE中設計的侷限性,RootKeyValue只能給出通過IDE的字符串值。如果您的ParentKey不是字符串類型,則必須通過代碼設置其值。

既然你父鍵的類型爲int使用

dataTreeListView1.RootKeyValue = 0; 

注意的是,與基本OLV,你並不需要手動添加列。如果你想隱藏設置的密鑰欄ShowKeyColumns = false。編號: 你的代碼還有一個錯誤。您添加對象oClass的相同實例3次。在初始化新人之前使用oClass = new Class();

+0

dataTreeListView1.RootKeyValue = 0;做了竅門,謝謝你的大力幫助! – user3167398

+0

@ user3167398我正面臨一些問題,我無法在datatreelistview上顯示內容,請你幫我解決 –

+0

我正面臨一些問題,我無法在datatreelistview上顯示內容,請你幫助我,我已經做了同樣的事情你做了我所有的代碼都和你一樣,但我得到了一個帶有列名但沒有內容的樹列表視圖 –