2012-08-13 51 views
0

我有列表视图和两个按钮;清晰和观察。清除按钮使列表视图中的列表变得不可见在c#

视图按钮运行完美,因为它应该是,当我点击清除按钮,它确实清楚,因为它应该。

问题发生后点击清除按钮,视图按钮似乎不起作用。它不会查看我想要的任何内容。

同样,当我点击清除按钮,然后我点击查看按钮,它不会查看任何东西。就好像清除按钮将保存在列表视图中可见的数据一样。

任何人都可以帮助我吗?

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

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; 

    } 
} 

为了更好的看法,这里是我的两种情况的界面。

enter image description hereenter image description here

第一图片示出了输出时点击查看按钮。

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

我即使不使用服务器这样的测试:

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

仍然看起来像以前一样。

+0

@ yogi:我已经把我的视图代码。 – 2012-08-13 09:07:24

+0

Sara这里是什么'_server',你是否用断点测试了你的视图代码?在清除listview之后它是否进入了循环? – yogi 2012-08-13 09:18:00

+0

@ yogi:是的,我做到了。我只是编辑我的帖子,我测试的方式。仍然,它不起作用。清晰的功能似乎使数据不可见。 – 2012-08-13 09:34:33

回答

0

Depedant为您的视图按钮的代码,你要知道,如果你想你清除了一个ListView之后的所有项目再次出现,你必须添加的物品放回列表视图,就像这样:

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

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

+0

我已经把我的观点code.could你请帮助它。 – 2012-08-13 09:07:45

+0

这不是添加数据的问题,而是点击清除按钮后出现的数据。如果你能帮助我,我非常感谢 – 2012-08-13 09:35:46

0

使用

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

代替

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

ListView.Clear();方法用于删除从ListView的所有项目,以及列,但我猜你只想要删除的项目,所以你想应该使用ListView1.Items.Clear();来代替。

0

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