我正在使用WPF/MVVM探索实体框架,这可能是最基本的,但我不能让它工作。我有一个包含两个实体OUTAGE_DETAILS和OUTAGE_TYPE_LOOKUP的edmx图。我只想对其中一个实体进行linq,并返回一个可以绑定到DataGrid的ObservableCollection。最终,我将从DataGrid添加/修改记录。我做错了什么,这是编辑和添加记录的最终结果的最佳方法吗?
这就是我所拥有的:
private Data_Entities oeContenxt = new Data_Entities();
private ObservableCollection<OUTAGE_DETAILS> _outagecollection;
public ObservableCollection<OUTAGE_DETAILS> OutageCollection
{
get { return _outagecollection; }
set
{
if (value == _outagecollection) return;
_outagecollection = value;
}
}
private void ShowOutages()
{
var query = (from o in oeContenxt.OUTAGE_DETAILS
select o.OUTAGE_SEQ_ID).ToList();
OutageCollection = new ObservableCollection<OUTAGE_DETAILS>(query.ToList()); // <- Error Here
}
// constructor
public MainWindowViewModel()
{
this.ShowOutages();
}错误是:The best overloaded method match for 'System.Collections.ObjectModel.ObservableCollection<WpfApplication1.OUTAGE_DETAILS>.ObservableCollection(System.Collections.Generic.IEnumerable<WpfApplication1.OUTAGE_DETAILS>)' has some invalid arguments
我认为这是这种情况下的常见错误,但我还没有找到解决方案。另外,我是否在集合的声明中正确使用了实体名称OUTAGE_DETAILS?
发布于 2015-05-11 22:34:27
为了使用EF获取数据,
public ObservableCollection<OUTAGE_DETAILS> LoadOutageDetails()
{
// Charge les données (Load data)
oeContenxt.OUTAGE_DETAILS.Load();
return oeContenxt.OUTAGE_DETAILS.Local;
}在视图后面的代码中使用它:
dtgrid.ItemsSource = LoadOutageDetails();或者使用MVVM,将虚拟机绑定到视图的dataContext上
this.DataContext = new MyViewModel();在视图的XAML中:
<DataGrid ItemsSource="{Binding AllOutageDetails}"></DataGrid>和您的虚拟机:
class MyViewModel{
private ObservableCollection<OUTAGE_DETAILS> _allOutageDetails;
/// <summary>
/// ObservableCollection de tous les outage details
/// </summary>
public ObservableCollection<OUTAGE_DETAILS> AllOutageDetails
{
get
{
return _allOutageDetails;
}
set
{
_allOutageDetails= value;
}
}
public MyViewModel()
{
_allOutageDetails = LoadOutageDetails();
}
}祝你玩得开心!
https://stackoverflow.com/questions/26515776
复制相似问题