0

我是 WPF 和 MVVM 的初学者。

我有一个数据网格的视图。我已将数据上下文设置为我的视图模型并将绑定设置为我的 IBindingList。我的模型由 ADO.NET edmx 组成。

我正在使用 Linq 从 ViewModel 查询我的 EF 表。似乎查询必须采用一种方法来避免错误“字段初始化程序无法引用非静态字段、方法或属性”Entity_MVVM.ViewModels。ETC。'

所以这是我的代码,它将我的 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

Instance Vairable 不能用于初始化另一个变量,因为编译器可能不会以相同的顺序执行。

尝试移动 LDBEntities db = new LDBEntities() 以查看模型构造函数。

于 2013-10-07T12:43:39.793 回答
1

就像 Sasha 所问的那样:这取决于您希望何时显示数据。如果在视图显示时需要它,只需将其放入构造函数中:

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