Привязка Winforms DataGridView к MembershipUserCollection - PullRequest
1 голос
/ 15 июня 2011

Я пытаюсь привязать DataGridView к MembershipUserCollection, но сетка отказывается показывать пользователей, даже если в базе данных есть записи.

В соответствии с моими исследованиями в Интернете я сделал следующее:

MembershipUserCollection x = Membership.GetAllUsers();

gvUsers.DataSource = x;

Благодарим Вас за помощь.

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Проблема в том, что объект, к которому вы привязываете, должен реализовать один из этих интерфейсов

  • 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 голос
/ 19 марта 2012

Может быть, это очевидно, но мне пришлось внести незначительную корректировку из MemberShipUser в MembershipUser.

Установить bindingList в качестве источника данных для моей сетки данных, и он прекрасно работал!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...