2011-12-06 14 views
0

私は、塗りつぶしオブジェクトとrxオブジェクトを含むビューモデルを持っています。以下に示すコードの上には、塗りのリストとrxのリストがあります。これらは正しく充填されています。MVC3 ViewModelを含むループロジックFor

以下では、my viewmodelのインスタンス内のfillオブジェクトとrxオブジェクトを、各リストの最初の要素に設定します。次に、私のビューモデルのインスタンスをMyViewModelsのListに追加し、ループを再開します。しかし、ループを再開する直前に、フィルのリストとrxのリストの最初の要素を削除して、次のサイクルで私のviewmodelオブジェクトが異なるようにします。私はそれぞれのviewmodelのオブジェクトは、フィルリストとRXリストから新しい値に等しく設定されているMyViewModelsの一覧で、ループの各反復で、デバッグするとき

問題が、あります。

これは私が見下ろすほど単純なものでなければなりません。前もって感謝します。

for (int i = 0; i < f; i++) 
       { 
         _myViewModel.fill = FillList.ElementAt(0); 
         _myViewModel.rx = RxList.ElementAt(0); 

         MyList.Add(_myViewModel); 

         FillList.RemoveAt(0); 
         RxList.RemoveAt(0); 
       } 


        return View(MyList); 

答えて

2

あなたがのためにループの_myViewModel外を作成しているように思えるので、_myViewModelは一つのオブジェクトです。

_myViewModelのクローンまたは何かをMyListリストに追加するのではなく、その参照を追加しています。したがって、次回ループが進行して、_myViewModelのリストにある項目も変更されます。

ループ内に新しいmyViewModelオブジェクトを作成する必要があります

+0

あなたは本当に正しいです。それが問題でした。ありがとう。 – HendPro12

0

お試しいただけましたか?私に

for(int i=0; i<f; i++) 
{  
    _myVieModel = new MyVieModel(); 
    _myViewModel.fill = FillList[i] 
    _myViewModel.rx = RxList[i] 
    MyList.Add(_myViewModel); 
} 
+0

ちょうどいいです。残念ながら、同じ結果。ビューモデルのリストには8つのViewModelが追加されていますが、すべてが同じ値を含むように上書きされています。 – HendPro12

+0

あなたの行が欠けているように私に聞こえます_myViewModel = new MyViewModel()。現在のコードとビューモデルのコードを投稿してもよろしいですか?そして、おそらく、あなたはviewModelの代わりに部分的なビューを望んでいますか? – jwood

+0

あなたの答えは私にも解決策をもたらしました。ありがとう。 – HendPro12

関連する問題