我正在尝试将DataGridView绑定到MembershipUserCollection,但即使数据库中有记录,网格也拒绝显示任何用户。
根据我在互联网上的研究,我做了以下几点:
MembershipUserCollection x = Membership.GetAllUsers();
gvUsers.DataSource = x;
感谢您的帮助。
答案 0 :(得分:2)
问题是你绑定的对象需要实现其中一个接口
IList
IListSource
IBindingList
IBindingView
而MembershipUserCollection仅实现ICollection
。
一种解决方案是创建一个实现其中一个接口的包装器/适配器。
这可能有用,无法测试它。
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);
}
答案 1 :(得分:1)
也许这很明显,但我不得不从MemberShipUser到MembershipUser进行小调整。
将bindingList设置为我的datagrid的数据源,它工作得很漂亮!