我有无人机的IP,当前位置和所需位置的列表视图。我唯一的问题是,当更新当前位置或所需位置时,它会添加一个具有相同ip的新无人机。我只想更新该特定IP的当前位置和所需位置的值。
ip_drone_master = this.master.ip_dron();
ip_drone_slave = this.slave.ip_dron();
PointF posicao_master = master.pos_atual();
posicao_atual_master = posicao_master;
PointF posicao_slave = slave.pos_atual();
posicao_atual_slave = posicao_slave;
pos_atual_master = " X: " + posicao_atual_master.X + " Y: " + posicao_atual_master.Y;
pos_atual_slave = " X: " + posicao_atual_slave.X + " Y: " + posicao_atual_slave.Y;
pos_desej_master = " X: " + posicao_desejada_master.X + " Y: " + posicao_desejada_master.Y;
pos_desej_slave = " X: " + posicao_desejada_slave.X + " Y: " + posicao_desejada_slave.Y;
ListViewItem item_master = lv_lista_posicoes.FindItemWithText(pos_atual_master);
ListViewItem item_slave = lv_lista_posicoes.FindItemWithText(pos_atual_slave);
ListViewItem item_master_desej = lv_lista_posicoes.FindItemWithText(pos_desej_master);
ListViewItem item_slave_desej = lv_lista_posicoes.FindItemWithText(pos_desej_slave);
if (item_master != null && item_master_desej != null)
{
}
else
{
ListViewItem lv = new ListViewItem(ip_drone_master);
lv.SubItems.Add(pos_atual_master);
lv.SubItems.Add(pos_desej_master);
lv_lista_posicoes.Items.Add(lv);
chart1.Series[0].Points.Clear();
chart1.Series[0].Points.AddXY(posicao_atual_master.X, posicao_atual_master.Y);
}
if (item_slave != null && item_slave_desej != null)
{
}
else
{
ListViewItem lv2 = new ListViewItem(ip_drone_slave);
lv2.SubItems.Add(pos_atual_slave);
lv2.SubItems.Add(pos_desej_slave);
lv_lista_posicoes.Items.Add(lv2);
chart1.Series[1].Points.Clear();
chart1.Series[1].Points.AddXY(posicao_atual_slave.X, posicao_atual_slave.Y);
}
答案 0 :(得分:1)
如果我看到的正确,您只需添加
的新项目 lv_lista_posicoes.Items.Add(lv);
但永远不会删除它们。但是,如果您只想更改内容,则替换该项目是一种糟糕的方式。您可以跟踪单个元素(或通过IP搜索它们),只需通过调用
来更改内容lv2.SubItems[0].Text = pos_atual_slave;
lv2.SubItems[1].Text = pos_desej_slave;
其中lv2是具有您要更新的IP的ListViewItem