文字列にINT:[閉]「列」に「メソッドグループ」から変換することはできません
質問
私は自分のフォーム上のListViewを持っています。私はそれはプログラムが実行されているdurringにコンテンツを追加したい。
これは私が使用するコード
public void FillList(string[] Name,int[] empty,int[] Population,int[] Max,int[] Check,int size)
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
for (int i = 0; i < size; i++)
{
ListViewItem item = new ListViewItem(Name[i]);
item.SubItems.Add(empty[i].ToString); //error
item.SubItems.Add(Population[i].ToString); //error
item.SubItems.Add(Max[i].ToString); //error
if (Check != 1)
item.SubItems.Add("No");
else
item.SubItems.Add("Yes");
listView1.Items.Add(item);
}
});
}
}
パラメータは文字列でなければならないと私は.ToString
を試してみましたが、私はこれを取得します
引数「1」:「文字列」「のメソッドグループ」へ変換することができない
解決
他のヒント
あなたは括弧を忘れてしまいました。
これは.ToString()
する必要があります。
ジョンは、このトピックオフになっていますが、追加するサブ項目のそれぞれの構成されたクラスに渡すために、この方法を考えました。だから、ます:
class ListItem
{
public string Name {get; set;}
public int Empty {get; set;}
public int Population {get; set;}
public int Max {get; set;}
public bool Checked {get; set;}
}
あなたが並んで渡された配列内の各アイテムを持っている必要がありますこの方法。多くの配列内のアイテムをラインアップしようとすると、頻繁に使用するインタフェースは難しい作ります。あなたの方法は次のようになります。
FillList(IList<ListItem> listItems)
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
foreach (ListItem listItem in listItems)
{
ListViewItem item = new ListViewItem(listItem .Name);
item.SubItems.Add(listItem.Empty.ToString());
item.SubItems.Add(listItem.Population.ToString());
item.SubItems.Add(listItem.Max.ToString());
item.SubItems.Add(listItem.Checked ? "No" : "Yes");
listView1.Items.Add(item);
}
}
}
}
私はちょうどので、そこにまっすぐにこのコードを書いているかもしれない必要ないくつかのコードのクリーンアップ
所属していません StackOverflow