Windowsフォームでリストビューをいくつかのサンプルデータで埋めようとしています。私は、プロパティ、次のようなもののトランザクションのリストを持っている:文字列の2D配列をデータで埋めてListViewに追加する
public float NetAmount { get; set; }
public DateTime TimeStamp { get; set; }
public string TransactionID { get; set; }
これは、これまでのサンプルデータは、次のようにリストビューに置かれている方法です。
private void seedListView(List<Transactions> list)
{
List<string[]> _nesto = new List<string[]>();
//Define
var data = new[]
{
new []{"Lollipop", "392", "0.2"},
new []{"KitKat", "518", "26.0"},
new []{"Ice cream sandwich", "237", "9.0"},
new []{"Jelly Bean", "375", "0.0"},
new []{"Honeycomb", "408", "3.2"}
};
//Add
foreach (string[] version in data)
{
var item = new ListViewItem(version);
materialListView1.Items.Add(item);
}
}
をデータでのデータソースとしてリストビューには、私は次のような出力が得られます。
Lollipop 392 0.2
KitKat 518 26.2
HoneyComb 408 3.2
今、私は同じことをする必要がありますが、その代わりに、私は私が渡されたリストから項目を満たしたリストビューを持っているしたいのですがこのような関数へ:
15.2は純額である15,2 2016-02-01 125215FESSEFOKP
19.2 2016-02-01 125215FESSEFOKP
13.6 2016-02-01 125215FESSEFOKP
15.9 2016-02-01 125215FESSEFOKP
、2016年2月1日にはタイムスタンプで、125215FESSEFOKPがTRANSACTIONIDです...
どのように私は動的にこれを行うことができますか?
編集:私はこのようにそれをやってきました:
List<string[][]> _nesto = new List<string[][]>();
string[][] data = null;
foreach (var item in list)
{
data = new[] { new[] { item.NetAmount.ToString(), item.TimeStamp.ToString(), item.TransactionID.ToString() } };
_nesto.Add(data);
}
ListViewItem it;
foreach (var item in _nesto)
{
foreach (string[] version in item)
{
it = new ListViewItem(version);
materialListView1.Items.Add(it);
}
}
誰もがこの1よりもクリーンなソリューションを持っていますか?これは私がこのような単純なもののために書いた、あまりにも多くのコードを思わ:D
代わりの文字列[]使用目的を使用して、それはそれを行う必要があります。 – Auguste
どういう意味ですか? – User987
下記の私の答えを参照してください。これを配列として作成することは、私の意見では設計上の選択肢が貧弱です。これはプログラミングにクラスがある理由です。それは "オブジェクト"を表し、それはまさにあなたがトランザクションでここでやっていることです。あなたのコードを管理し、それを配列として扱うよりずっと簡単に変更する – peterpep