2016-08-03 3 views
0

무인 항공기의 IP, 현재 위치 및 원하는 위치에 대한 목록보기가 있습니다. 내 유일한 문제는 현재 위치 나 원하는 위치가 업데이트 될 때 동일한 IP를 가진 새로운 무인 항공기를 추가한다는 것입니다. 난 그저 그 특정 IP에 대한 현재 위치와 원하는 위치의 값을 업데이 트하고 싶습니다. 당신이 항목을 찾아서 업데이트해야 할 때 새 ListViewItem마다 만드는 것처럼C# - Listview 업데이트 항목에 대한 보조 항목

  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); 


      } 
+0

이 선'ListViewItem이 LV = 새로운 ListViewItem이가 (ip_drone_master) '새로운'ListViewItem'마다 생성된다. 'lv_lista_posicoes.FindItemWithText (ip_drone_master)'를 사용하여 항목이 먼저 존재하는지 검색 했습니까? – Ash

+0

그래서 존재하지 않는다면 추가 하시겠습니까? –

+0

그래 .... 그게 당신이 요구하는 행동이라면. – Ash

답변

0

보인다.

이 변경보십시오 이에

  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); 

:

  var lvCheck = lv_lista_posicoes.FindItemWithText(ip_drone_master); 
      ListViewItem lv = lvCheck ?? new ListViewItem(ip_drone_master); 
      lv.SubItems.Add(pos_atual_master); 
      lv.SubItems.Add(pos_desej_master); 
      if (lvCheck == null) lv_lista_posicoes.Items.Add(lv); 
+0

ListViewItem lv = lvCheck ?? 새 ListViewItem (ip_drone_master); 물음표는 무엇을합니까? –

+0

'??'는 2 진 널 확인 및 대입 연산자입니다. 그래서'var x = y ?? z;'는 'if (y == null) x = y; else x = z;' – Ash

+0

nvm. 나는 이미 확인했다. Thx –

관련 문제