2016-03-27 2 views
0

У меня есть небольшая проблема, я пытаюсь обновить мой ListView (listClients)C# - Нет обновления в ListView

private ListView initializeLstView() 
     { 
      var lstView = new ListView(); 
      var lstViewItem = new ListViewItem(); 
      for (uint i = 0; i < 18; ++i) 
      { 
       lstViewItem = lstView.Items.Add("Free"); 
       lstViewItem.SubItems.Add("Free"); 
      } 
      return (lstView); 
     } 

     private ListView setNamesToLstView() 
     { 
      var lstView = initializeLstView(); 
      try 
      { 
       for (uint i = 0; i < 18; ++i) 
       { 
        lstView.Items[(int)i].Text = clients.GetName(i); 
        lstView.Items[(int)i].SubItems[1].Text = "{" + i.ToString() + "}"; 
       } 
       lstView.Update();    
      } 
      catch (Exception a) 
      { 
       Interaction.MsgBox(a.ToString()); 
      } 
      return (lstView); 
     } 

     private void btnRefreshClients_Click(object sender, EventArgs e) 
     { 
      listClients = setNamesToLstView(); // Here, no update 
     } 

Но вот, мой ListView не содержит ничего, нет обновления/нет обновления, то почему?
Как я могу это решить?

+0

Что такое 'listClients'? –

+0

listClients - мой списокView –

ответ

0

Проблема в том, что вы добавляете элементы в другой вид списка.

listClients является переменной-членом, которая указывает на ListView, которую вы предварительно добавили в формулу Controls. Если вы хотите добавить элементы в это представление списка, вы должны добавить элементы именно к этому объекту, используя listClients.Items.Add(...).

Но в настоящее время вы создали ListView в методе и добавили к нему товары и, наконец, вернули его и присвоили ему listClients. Это не означает, что ваше новое созданное представление списка будет отображаться в вашей форме. Он делает переменную listClients только указывает на новый созданный элемент управления, пока вы видите предыдущий созданный ListView.

+0

Большое вам спасибо! –

Смежные вопросы