Я изо всех сил пытаюсь перейти от выбранного элемента в виде списка к реальному объекту, который он представляет. Чтобы сохранить этот вопрос просто, у меня есть несколько вещей:C# Как связать выбранный элемент в ListView с реальным объектом?
Два списков объектов домашнего класса personaje
:
public List<personaje> nuevosDeudores = new List<personaje>();
public List<personaje> deudores = new List<personaje>();
Теперь у меня есть ListView, который показывает nuevosDeudores
, и я хочу, чтобы выбрать один пункт и нажмите button3, чтобы удалить его из этого списка и добавить его в список deudores
.
private void button3_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count == 1)
{
ListViewItem item = listView1.SelectedItems[0];
jugador.deudores.Add(***i need to put the "personaje" object reference here***);
jugador.nuevosDeudores.RemoveAll(x => x.identificador == Convert.ToInt32(listView1.SelectedItems[0].SubItems[0].Text));
listView1.Items.Remove(item);
}
}
Как вы можете видеть, я нашел способ, чтобы удалить personaje
объект из одного списка, но я не знаю, как добавить его в другой список. У меня есть только паршивую ссылка ListViewItem, я не знаю, как непосредственно «об этом говорить» так что, говорят :)
EDIT: добавить код, где я заполнить два списка
deudores.Add(new personaje("Dimitri", 1));
deudores[0].seLeDebe = 5000;
deudores[0].paciencia = 4;
deudores.Add(new personaje("Marcelo", 1));
deudores[1].seLeDebe = 2500;
deudores[1].paciencia = 10;
nuevosDeudores.Add(new personaje("Pascuale", 1));
nuevosDeudores[0].oferta = 3000;
nuevosDeudores[0].paciencia = 10;
nuevosDeudores.Add(new personaje("Señor Anselmo", 1));
nuevosDeudores[1].oferta = 6000;
nuevosDeudores[1].paciencia = 7;
nuevosDeudores.Add(new personaje("Snatch", 1));
nuevosDeudores[2].oferta = 2000;
nuevosDeudores[2].paciencia = 5;
И вот код, который я использую для заполнения ListView
private void PopularListview()
{
listView1.Items.Clear();
int cuenta = 0;
ListViewItem[] item = new ListViewItem[20];
foreach (personaje deudor in jugador.deudores)
{
string paciencia = "";
for (int i = 0; i < deudor.paciencia/2; i++) paciencia += "|";
string[] row = { deudor.identificador.ToString(), deudor.nombre, deudor.seLeDebe.ToString(), paciencia };
item[cuenta] = new ListViewItem(row);
listView1.Items.Add(item[cuenta]);
cuenta++;
}
}
Три решения для одной проблемы, я попробую их все. Спасибо! –