Member 12556026 Ответов: 1

При обновлении времени в списке отображаются одни и те же данные с обеих сторон.


Я использую ListBox в своем проекте. Когда я получаю данные для обновления, то те же данные отображаются в listbox1 и listbox2. Но я пытаюсь удалить данные из listbox1, которые уже читаются в Listbox2

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

if (updateById == null) return;
btnSave.CommandArgument = updateById.CityDetailsId.ToString(CultureInfo.InvariantCulture);
BindStateDetails();
ddlState.SelectedValue = Convert.ToString(updateById.StateId);
BindCityList();
//libAdminCity.DataSource = updateById.CityName;
message3 = updateById.VCityId;
message4 = updateById.CityName;
string[] arr = message4.Split(',');

for (int i = 0; i < arr.Length; i++)
{
    foreach (ListItem item in libAdminCity.Items)
    {
       // int j = 0;
       // if (item.Text == arr[i])
        if (libVendorCity.Items.Contains(item))
        {

            //libVendorCity.Items.Add(new ListItem(Convert.ToString(item.Text), Convert.ToString(item.Value)));
            libAdminCity.Items.Remove(item);

        }
        //else
        //{
        //    libVendorCity.Items.Add(new ListItem(Convert.ToString(item.Text), Convert.ToString(item.Value)));
        //}

    }


}

Atlapure Ambrish

Как вы привязываете данные к своим спискам?

Какую проблему/ошибку вы получаете при удалении элемента из списка?

Karthik_Mahalingam

Поместите точку останова и проверьте, входит ли она в условие.

1 Ответов

Рейтинг:
0

Steve44

Ваша проблема, похоже, заключается в том, что ваш Contains() никогда не возвращает true, поскольку он не совсем то, что вы хотите. Два элемента, которые имеют один и тот же текст, все еще являются двумя различными элементами в отношении этого метода.

Вам нужно сделать цикл над списком libVendorCity и сравнить каждое свойство текста элемента, и если оно совпадает, вы делаете Remove().