Результаты управления WinForm с привязкой к данным Возвращаемое имя класса не фактические данные - PullRequest
0 голосов
/ 27 апреля 2020

Мне очень трудно найти решение моей проблемы. Я просмотрел Inte rnet, перестроил свой класс несколько раз и прошел все строки в отладчике.

У меня есть три элемента управления ListBox, к которым я привязываю данные BindingList. В двух ListBox, данные - это то, что ожидается; имена из базы данных. Третий ListBox отображает не имена, а пространство имен элементов. В каждом из моих классов я реализовал интерфейс IBindingList. Я связал список с источником данных элемента управления и предоставил соответствующее имя для DisplayMember.

В отладчике я могу видеть имена из базы данных в lbRole ListBox после того, как они связаны с источником данных, но когда форма отображается, они не появляются, только пространство имен.

//
// Get all control names.
//
lbUser.DataSource = SharepointTestBusinessLayer.User.ListAll();
lbUser.DisplayMember = "LoginID";

lbControl.DataSource = SharepointTestBusinessLayer.Control.ListAll();
lbControl.DisplayMember = "ControlName";

lbRole.DataSource = SharepointTestBusinessLayer.Role.ListAll();
lbRole.DisplayMember = "RoleName";

При прохождении моих классов с помощью отладчика в классе RoleItemCollection GetEnumerator () никогда не срабатывает.

BindingList<RoleItem> m_CurrentRoleItemCollection;

public BindingList<RoleItem> CurrentRoleItemCollection { get => m_CurrentRoleItemCollection; set => m_CurrentRoleItemCollection = value; }

public object this[int index] { get => ((IBindingList)CurrentRoleItemCollection)[index]; set => ((IBindingList)CurrentRoleItemCollection)[index] = value; }

public IEnumerator GetEnumerator()
{
    return ((IBindingList)CurrentRoleItemCollection).GetEnumerator();
}

Я не знаю, почему GetEnumerator () никогда не принадлежит ему в классе RoleItemCollection, поскольку он используется в классах ControlItemCollection и UserItemCollection.

Что-то приходит вам в голову в связи с этой проблемой, у вас может быть некоторое понимание в. Я не могу думать ни о чем другом, чтобы попробовать.

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