0

リストビューと 2 つのボタンがあります。クリアして表示します。

ビュー ボタンは正常に動作し、クリア ボタンをクリックすると正常にクリアされます。

クリアボタンをクリックした後に問題が発生し、ビューボタンが機能しないようです。私が望むものは何も表示されません。

最初にクリアボタンをクリックしてから表示ボタンをクリックしても、何も表示されません。あたかもクリアボタンがリストビューに表示されていないデータを保持するかのように。

誰でもこれで私を助けることができますか?

以下は、クリアボタンの私のコードです。

 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;

   }
}

見やすくするために、ここに両方の​​状況の私のインターフェースがあります。

ここに画像の説明を入力ここに画像の説明を入力

最初の図は、表示ボタンをクリックしたときの出力を示しています。

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

View ボタンのコードに応じて、ListView をクリアした後にすべてのアイテムを再び表示する場合は、次のように、アイテムを Listview に戻す必要があることを知っておく必要があります。

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

私があなたの質問に正しく答えていることを確認するために、ビュー ボタンのコードを投稿してください。

于 2012-08-13T08:58:18.533 に答える
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();代わりに使用する必要があります。

于 2012-08-13T09:52:51.673 に答える
0

ListViewItem の作成、View への項目の手動追加、コントロールへの直接アクセス: これらすべてを行うべきではありません。
DateList プロパティ : ETA/Priority/date/... オブジェクトの ObservableCollection が必要です。次に、ListView でこのプロパティ ItemSource="{Binding DateList}" へのバインドを行います。ウィンドウの new() または loaded() 関数で DataContext を設定することを忘れないでください。そして、コード ビハインドで DateList のみを操作し、データ項目を追加または削除します。
このようにしないと、ますます多くの問題が発生します (このようなもの: クリアなどの単純な操作でコードが壊れることを確認してください...)

于 2012-08-13T09:53:51.963 に答える