当我试着
using (var db = new NewDbContext()) { var AllItems = new ObservableCollection<db.Items>(); ItemsDataGrid.ItemsSource = AllItems; }
我得到了那个错误'db'是一个变量,但像类型一样使用
qzlgjiam1#
这是因为db.Items不是一个类型,而是一个特定类型的集合(我假设该类型是Item?)。试试这个:
db.Items
Item
var AllItems = new ObservableCollection<Item>(db.Items); ItemsDataGrid.ItemsSource = AllItems;
m0rkklqb2#
db.Items将返回类型为IQueryable<Item>的集合。看起来你想将IQueryable<T>的结果转换为ObservableCollection<T>。实际上,您需要在Observable的构造函数中传递Items。正确的代码是:
IQueryable<Item>
IQueryable<T>
ObservableCollection<T>
Observable
Items
ObservableCollection<Item> AllItems = new ObservableCollection<Item>(db.Items);
然后:
ItemsDataGrid.ItemsSource = AllItems;
希望有帮助。
5kgi1eie3#
对于任何遇到这个问题的人。您也可以直接用途:
ObservableCollection<Item> AllItems = db.Items.Local;
要填充集合,可能需要调用db.Items.Load(),它是System.Data.Entity的扩展
db.Items.Load()
System.Data.Entity
3条答案
按热度按时间qzlgjiam1#
这是因为
db.Items
不是一个类型,而是一个特定类型的集合(我假设该类型是Item
?)。试试这个:
m0rkklqb2#
db.Items
将返回类型为IQueryable<Item>
的集合。看起来你想将IQueryable<T>
的结果转换为ObservableCollection<T>
。实际上,您需要在
Observable
的构造函数中传递Items
。正确的代码是:然后:
希望有帮助。
5kgi1eie3#
对于任何遇到这个问题的人。您也可以直接用途:
要填充集合,可能需要调用
db.Items.Load()
,它是System.Data.Entity
的扩展