0

私はWPFとMVVMの初心者です。

データグリッドのあるビューがあります。データ コンテキストをビュー モデルに設定し、バインディングを IBindingList に設定しました。私のモデルは ADO.NET edmx で構成されています。

Linq を使用して ViewModel から EF テーブルをクエリしています。エラー「フィールド初期化子は非静的フィールド、メソッド、またはプロパティ「Entity_MVVM.ViewModels. 等。'

したがって、EF テーブルを IBindingList にクエリするコードは次のとおりです。GetData メソッドを呼び出してクエリ結果をビューに公開するにはどうすればよいですか?

namespace Entity_MVVM.ViewModels

 public class ContractViewModel : INotifyPropertyChanged
  {

   public void GetData()
   {
       LDBEntities db = new LDBEntities();

       IBindingList contracts = ((from c in db.tbContracts
                                  select new { c.Contract_ID, c.Contract_name, c.Country }
     ) as IListSource).GetList() as IBindingList;

   }

   public event PropertyChangedEventHandler PropertyChanged;
 }
}

皆さんありがとう

4

2 に答える 2

2

コンパイラが同じ順序で実行されない可能性があるため、インスタンス Vairable を使用して別の変数を初期化することはできません。

LDBEntities db = new LDBEntities() をビュー モデル コンストラクターに移動してみてください。

于 2013-10-07T12:43:39.793 に答える
1

サーシャが尋ねているように、データをいつ表示するかによって異なります。ビューが表示されているときに必要な場合は、コンストラクターに入れます。

public ContractViewModel 
{
   GetData();
}
于 2013-10-07T12:09:38.603 に答える