ListView Item clear Issue - PullRequest
       1

ListView Item clear Issue

0 голосов
/ 25 июня 2018

Я использую метод listview.items.clear() в приложении формы C # windows, а затем добавляю новый элемент списка.

По-прежнему отображаются ранее загруженные элементы.

listViewUsers.Items.Clear();                
dsUsers = aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount = dsUsers.Tables["UserNames"].Rows.Count;

for (int i = 0; i < rowsCount; i++)
{
    dRow = dsUsers.Tables["UserNames"].Rows[i];

    lvi = new ListViewItem("item" + i, i);
    lvi.SubItems.Add(dRow["User_ID"].ToString().Trim());                  
    lvi.SubItems.Add(dRow["User Name"].ToString().Trim());

    listViewUsers.Items.Add(lvi);
}

У меня есть предварительно определенные столбцы в списке просмотра.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Может быть, этот код поможет вам с проблемой

    private void Form1_Load(object sender, EventArgs e)
    {

        ListView listView1 = new ListView();
        listView1.Bounds = new Rectangle(new Point(10, 10), new Size(300, 200));

        listView1.View = View.Details;
        listView1.LabelEdit = true;
        listView1.AllowColumnReorder = true;
        listView1.CheckBoxes = true;
        listView1.FullRowSelect = true;
        listView1.GridLines = true;
        listView1.Sorting = SortOrder.Ascending;

        var dsUsers = GetUserNamesList();
        int rowsCount = dsUsers.Count;
        ListViewItem lvi = new ListViewItem("item1", 0);
        for (int i = 0; i < rowsCount; i++)
        {
            var dRow = dsUsers[i].Name;

            lvi = new ListViewItem("item" + i, i);
            lvi.SubItems.Add(dsUsers[i].UserId.ToString().Trim());
            lvi.SubItems.Add(dsUsers[i].Name.ToString().Trim());
            lvi.SubItems.Add(dsUsers[i].LastName.ToString().Trim());

            listView1.Items.AddRange(new ListViewItem[] { lvi });
        }

        listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);


        ImageList imageListSmall = new ImageList();
        ImageList imageListLarge = new ImageList();

        listView1.LargeImageList = imageListLarge;
        listView1.SmallImageList = imageListSmall;

        this.Controls.Add(listView1);
    }

    public IList<ClientModel> GetUserNamesList()
    {
        ClientModel user = null;
        IList<ClientModel> listusers = new List<ClientModel>();

        user = new ClientModel();
        user.UserId = 1;
        user.Name = "Juan 1";
        user.LastName = "Donoban 1";
        listusers.Add(user);
        //////////////////////////////////////
        user = new ClientModel();
        user.UserId = 2;
        user.Name = "Juan 2";
        user.LastName = "Donoban 2";
        listusers.Add(user);


        return listusers;
    }
}
0 голосов
/ 26 июня 2018

Вы можете использовать следующий код:

listViewUsers.DataSource = null;

dsUsers = aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount = dsUsers.Tables["UserNames"].Rows.Count;

for (int i = 0; i < rowsCount; i++)
{ 
    dRow = dsUsers.Tables["UserNames"].Rows[i];

    lvi = new ListViewItem("item" + i, i);
    lvi.SubItems.Add(dRow["User_ID"].ToString().Trim());                  
    lvi.SubItems.Add(dRow["User Name"].ToString().Trim());

    listViewUsers.Items.Add(lvi);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...