2013-10-22 67 views
1

此代码会导致DataGridView grid显示空行,尽管它有一个柱DataPropertyName设置为“MyProp1”:的DataGridView必然的BindingList显示空行

public class MyClass 
{ 
    public int MyProp1; 
    public int MyProp2; 
    public int MyProp3; 
} 

public class MyItems:IListSource 
{ 
    BindingList<MyClass> _items = new BindingList<MyClass>(); 

    //.............................. 

    //IListSource 
    public bool ContainsListCollection 
    { 
     get { return false; } 
    } 

    //IListSource 
    public System.Collections.IList GetList() 
    { 
     return _items; 
    } 
} 

MyItems i = new MyItems(); 
............. 
//MyItems list is populated 
............. 
grid.DataSource = i; 

出了什么问题?

如果我用“MyProp1”列创建DataTable,其内容以正确的方式显示。

+1

为什么'ContainsListCollection'在吸气返回'FALSE'? –

+0

你可以为你的datagridview发布XAML吗? –

+0

是“WPF”还是“WinForms”?如果你的集合元素是“IList”,那么返回值必须是真的,否则为false。 –

回答

7

您需要更改的MyClass公共领域的相应属性:

public class MyClass 
{ 
    public int MyProp1 { get; set; } 
    public int MyProp2 { get; set; } 
    public int MyProp3 { get; set; } 
} 
+1

+1为观测记录 –

+0

它帮助!现在它甚至在'ContainsListCollection'中用'List '而不是'BindingList '和'true'或'false'也没有任何区别。 – Paul