おはよう、C#:リストビューは別のクラスからの項目を追加しません
私はプログラミング全体には新しく、解を見つけることができません。 私はListViewに別のクラスから来たアイテムを取り込もうとしています。 Class2
がArray
を返すとき、ListViewは何もしないようです。ここで
は、私はそれを作る方法です。
1)私が何かを検索し、Class2
にForm1の中(メインクラス)値を送信します。
private void tbSearch_KeyDown(object sender, KeyEventArgs e)
{
Class2 cl2 = new Class2();
if (e.KeyCode == Keys.Enter)
{
if (string.IsNullOrEmpty(tbSearch.Text))
{
MessageBox.Show("The Textbox is Empty.....");
}
else
{
listV.Items.Clear();
cl2.Search(tbSearch.Text); // Give a value to Method in Class2
}
}
}
2)次にClass2
に私はいくつかのインターネットを行います検索し、結果を返すarrays
:
public async void Search(string search_value)
{
/*** Read the XML Data that i've got from Response ****/
foreach (XmlNode node in XMLlist)
{
/****** Get the values that i need and write them into an array *******/
string[] result = new string[10];
result[0] = series_title;
result[1] = series_type;
result[2] = series_episodes;
result[3] = series_score;
result[4] = series_id;
result[5] = series_title_english;
result[6] = series_status;
result[7] = series_start_date;
result[8] = series_end_date;
result[9] = series_image;
Form1 fm1 = new Form1();
fm1.Update_SearchList(result); // Return an array to Form1
}
}
3)そして最後に、私は返さとリストビューを移入しよう(再度のForm1):
public void Update_SearchList(string [] array)
{
ListViewItem item = new ListViewItem(array);
this.listV.BeginUpdate();
this.listV.Items.Add(item); // Here the Item.Add() Method doesn't add new Items to the ListView or they just aren't being shown.
this.listV.EndUpdate();
}
listView.View
はDetails
に設定され、列はForm.Load
に生成されています。
listView.Items.Add();
メソッドの実行方法に問題がありますか、それとも別の問題がありますか?
私はこの全体の操作を1つの単一で行うようにしようとすると、private void tbSearch_KeyDown(object sender, KeyEventArgs e)
すべてが動作します。
ありがとうございました。
ありがとうございます。私はあなたが提案したようにしてやろうとしました。同期方法を変更しました。しかし、私は、「は要素が読み取り専用であるため、refまたはout引数として渡すことはできません。' –
idkWhatToDo
@idkWhatToDo不思議なことはありません:)それはちょっと考えました。変数を渡すためにイベントを使用する私の以前のソリューションを試すことができますか? https://stackoverflow.com/questions/44131608/duplicate-windows-in-all-screens-with-function –
あなたのイベントのソリューションは理解しにくいですが、2番目の提案が有効です。アイテムがリストに追加されています。機能が働くと小さなフリーズで暮らすことができます。今、私はそれらを私が望むように加える方法を見つけなければならないが、これは別の話である。時間をかけて私を助けてくれてありがとう! – idkWhatToDo