Gaurav Patil Ответов: 1

Справка по добавлению элементов в listview с помощью языка C#


Привет,

Я новичок, и мне просто нужна помощь в решении этой проблемы.

Я думаю, что это просто, но я пытался понять это, но я не получаю ничего.
В настоящее время у меня есть ArrayList arry_eventss к которому
[0] 1998397003
[1] 2

Я добавляю данные в listview.
но ошибка в этой строке
Ошибка : Система.InvalidOperationException: 'операция Кросс-потока недопустима: элемент управления 'listView1' доступен из потока, отличного от потока, в котором он был создан.'

мыши listview1.Предметы.Добавить(ftrs.Метод toString());


я хочу вывести вот так

ТИП | СТАТУС
1998397003 | 2
4548484541 | 5

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

public void CB_SubscribeEvent(PLAT_SUBSCRIBE_EVENT_V20 pstEvent, IntPtr pUser)
        {
           ArrayList arry_eventss = new ArrayList();

           arry_eventss.Add(pstEvent.iState);
           arry_eventss.Add(pstEvent.iEventType);
           int c_arry_events = arry_eventss.Count;

           string[] ftrs = new string[c_arry_events];
           for (int j = 0; j < c_arry_events; j++)
           {

               listView1.Items.Clear();

               ftrs[j] = arry_eventss[j].ToString();

           }
           listView1.Items.Add(ftrs.ToString());
         }

1 Ответов

Рейтинг:
1

TheRealSteveJudge

Если вы используете Windows Forms
вы должны прочитать эту статью:
Использование шаблона Invoke Design с анонимными методами[^]

напр.

Invoke(new MethodInvoker(
        delegate { listView1.Items.Add(ftrs.ToString()); }
    ));
}
если вы используете WPF вы должны прочитать это:
Обновление пользовательского интерфейса WPF из другого потока – Стивен преследует { кодирования в окопах }[^]

напр.
Application.Current.Dispatcher.Invoke(() =>
{
    listView1.Items.Add(ftrs.ToString());
});