2014-01-28 98 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上显示内容,请你帮助我,我已经做了同样的事情你做了我所有的代码都和你一样,但我得到了一个带有列名但没有内容的树列表视图 –