Codeafide Ответов: 0

На C# перейти (добавить удалить) элементы двух списков облигаций


У меня есть два списка на двух вкладках приложения Windows Form; lstSource & lstPerson, которые привязаны к DataTable, который является фильтром из запроса базы данных, управляемого из четырех ComboBoxes (WorkGrp, TeamGrp, Position, Location). Я использую два списка типа Binding & lt;object> Для добавления и удаления элементов из этих списков, но они работают только для первого элемента, после чего я получаю " Data. System. DataRowView"

Я пробовал почти каждый пример или предлагаемое исправление, которое я мог найти для проблем" Data.System.DataRowView " или списков/списков.

Что я уже пробовал:

Списка.SelectedObjectCollection sourceRrItems = lstRrSource.Свойство selecteditems;
Список<система.данных.объекта datarowview&ГТ; removeRrItems = новый список<система.данных.объекта datarowview&ГТ;();
по каждому элементу (ВАР продукт в sourceRrItems)
{
lsRrPerson.Добавить((Система.Данных.Объекта datarowview)(элемент)); //добавление элемента в LstPerson
removeRrItems.Добавить((Система.Данных.Объекта datarowview)(элемент));//добавление элемента в список удаление
}
//lstRrPerson.DataSource = null; / / unbind listbox

по каждому элементу (ВАР продукт в removeRrItems)
{
//lsRrSuce.Удалить((инт)(lstRrSource.Выбранные элементы.Рассчитывать));
//lsRrSuce.Удалить(((Система.Данных.Объекта datarowview)пункт.элементе управления listcontrol).Свойства selectedIndex);

for (int i = 0; i < sourceRrItems.Граф; i++)
{
строка itmName = Convert.Метод toString(пункт.Подряд.ItemArray[1]);
string scuName = (lstRrSource.Текст);

if (itmName == scuName)
{
lsRrSuce.RemoveAt(lstRrSource.Свойства selectedIndex);

}
}

}

lstRrPerson.Источник данных = lsRrPerson.OrderBy (x = & gt; "имя").Список();
lstRrPerson.ValueMember = " Person_ID";
lstRrPerson.DisplayMember = " Имя";
lstRrSource.Освежить();

for (int z = 0; z < lstRrPerson.Предметы.Count; z++)
{
lstRrPerson.GetItemText(lstRrPerson.Предметы[з]);
}

lstRrPerson.ValueMember = " Person_ID";

lstRrSource.Источник данных = lsRrSuce.OrderBy (x = & gt; "имя").Список();

lstRrSource.DisplayMember = " Имя";

lstRrSource.Источник данных.Метод toString();

}
}

0 Ответов