2011-06-15 91 views
1

我试图将DataGridView绑定到MembershipUserCollection,但网格拒绝显示任何用户,即使数据库中有记录。将WinForms DataGridView绑定到MembershipUserCollection

根据我在互联网上的研究,我做了以下内容:

MembershipUserCollection x = Membership.GetAllUsers(); 

gvUsers.DataSource = x; 

感谢你的帮助。

+0

'x.Count!= 0'? – InBetween 2011-06-15 12:28:20

+0

是的,我检查了x.count = 3 – AbZy 2011-06-15 12:29:16

回答

2

的问题是,您绑定到需要的对象来实现这些接口

  • IList
  • IListSource
  • IBindingList
  • IBindingView

之一而MembershipUserCollection只实现ICollection

一种解决方案是创建一个实现这些接口之一的包装器/适配器。


这可能工作,不能测试atm。

var collection = Membership.GetAllUsers(); 
var bindingList = new BindingList<MemberShipUser>(); 

// If it's only meant for display 
bindingList.AllowNew = false; 
bindingList.AllowRemove = false; 
bindingList.AllowEdit = false; 

foreach (MemberShipUser member in collection) 
{ 
    bindingList.Add(member); 
} 
+0

有关如何创建此包装器/适配器的任何提示? – AbZy 2011-06-15 12:38:36

+0

我更新了我的帖子。 – 2011-06-15 12:49:57

+0

很好地工作,谢谢。 – AbZy 2011-06-15 12:55:34

1

也许这很明显,但我不得不从MemberShipUser到MembershipUser的小调整。

设置bindingList作为我的数据网格的数据源,它工作的很棒!

相关问题