0

我有列表视图和两个按钮;清晰可见。

视图按钮按应有的方式完美运行,当我单击清除按钮时,它确实按应有的方式清除。

单击清除按钮后出现问题,查看按钮似乎不起作用。它没有查看我想要的任何内容。

当我先单击清除按钮然后单击查看按钮时也是如此,它不会查看任何内容。好像清除按钮将保存列表视图中可见的数据。

谁能帮我这个?

下面是我的清除按钮代码。

 private void clear_Click(object sender, EventArgs e)
        {
            listView1.Clear();
        }

这是我的查看按钮。

private void view_Click(object sender, EventArgs e)
{               
   ListViewItem listviewitem;
   for (int i = 0; i <= _server.Q.NoOfItem - 1; i++)
   {
      String words = _server.Q.ElementAtBuffer(i).ToString();
      String[] berjaya = words.Split(new char[] { ',', '[', ']', ' ' }); 
      listviewitem = new ListViewItem(berjaya[43]);
      listviewitem.SubItems.Add(berjaya[41]);
      listviewitem.SubItems.Add(berjaya[1]);
      listviewitem.SubItems.Add(berjaya[45]);
      this.listView1.Items.Add(listviewitem);

      listView1.FullRowSelect = true;

      listView1.View = View.Details;

      foreach (ColumnHeader ch in this.listView1.Columns)
          ch.Width = -2;

   }
}

为了更好地查看,这是我对这两种情况的界面。

在此处输入图像描述在此处输入图像描述

第一张图片显示了单击查看按钮时的输出。

第二张图片显示了单击清除按钮时的输出。它仍然以这种方式打印出来,无论是我们先单击清除按钮还是单击查看按钮后。它不会在列表视图中显示数据。

我什至在不使用这样的服务器的情况下进行了测试:

XmlDocument xml = new XmlDocument();
        xml.Load("C:\\Users\\HDAdmin\\Documents\\SliceEngine\\SliceEngine\\bin\\Debug\\myself.xml");
        XmlNodeList xnList = xml.SelectNodes("/main/myself");

        listviewitem = new ListViewItem("a");
        listviewitem.SubItems.Add("b");
        listviewitem.SubItems.Add("c");
        listviewitem.SubItems.Add("d");
        this.listView1.Items.Add(listviewitem);

        listView1.FullRowSelect = true;
        //show header
        listView1.View = View.Details;

        // Loop through and size each column header to fit the column header text.
        foreach (ColumnHeader ch in this.listView1.Columns)
        {
            ch.Width = -2;
        }

它仍然和以前一样。

4

3 回答 3

0

取决于查看按钮的代码,您必须知道,如果您希望在清除 ListView 后所有项目再次出现,则必须将项目重新添加到 Listview 中,如下所示:

listView.Items.Add("I am being added to the list");

请务必发布您的查看按钮代码,以确保我正确回答您的问题。

于 2012-08-13T08:58:18.533 回答
0

创建一个 ListViewItem,手动将项目添加到一个视图,直接访问控件:所有这些都是你不应该做的。
您应该有一个 DateList 属性:您的 ETA/Priority/date/... 对象的 ObservableCollection。然后在您的 ListView 中绑定到此属性 ItemSource="{Binding DateList}",不要忘记在 Window 的 new() 或 loaded() 函数中设置 DataContext。然后您只需在后面的代码中对 DateList 进行操作,添加或删除您的数据项。
如果你不这样做,你会给自己带来越来越多的问题(比如这个:看到像清除这样的简单操作会破坏你的代码......)

于 2012-08-13T09:53:51.963 回答
0

尝试使用

private void clear_Click(object sender, EventArgs e)
{
      listView1.Items.Clear();
}

代替

private void clear_Click(object sender, EventArgs e)
{
      listView1.Clear();
}

ListView.Clear();方法用于从 a 中删除所有项目以及列,ListView但我想您只想删除项目,因此您应该ListView1.Items.Clear();改用。

于 2012-08-13T09:52:51.673 回答