2

ListView (WPF System.Windows.Controls.ListView) から選択した項目を取得し、それを別の変数に渡して選択肢を保存しようとしていますが、NullReferenceException が発生します。

List<LViewItem> onlySelectedItems = null;
var selectedItems = listView1.SelectedItems;

foreach (var item in selectedItems)
{
    onlySelectedItems.Add((LViewItem)item);  // Throws NullReferenceException
}

選択したアイテムを別の変数に保存して選択を保存するにはどうすればよいですか?

4

2 に答える 2

4

問題は、onlySelectedItemsリストを初期化していないためです。

List<LViewItem> onlySelectedItems = new List<LViewItem>(listView1.SelectedItems.Count);

リストに割り当てるスペースの数 (初期容量) のコンストラクター ガイダンスのパラメーター。これは、選択されたアイテムの数であることに意味があります。

とにかく、ビューとモデル ( MVVM )の間のより明確な相関関係を維持しようとする他のアプローチがあることに注意してください。時間があれば試してみてください。生産性と懸念事項の明確な分離に見返りが得られます。ゼロからである必要はありません。MVVM LightCaliburn Microなどのフレームワークは、必要な配管を提供します。

于 2012-09-05T13:12:29.537 に答える
3

あなたonlySelectedItemsはnullです。最初に初期化する

List<LViewItem> onlySelectedItems = new List<LViewItem>();
于 2012-09-05T13:11:49.253 に答える