我正在将数据网格绑定到某些数据并使用AutoColumnGeneration。对数据集使用常规linq查询时,一切正常:
var queryAll = from actor in actorsAll
select new
{
ActorName = actor.IsPerson ? actor.FirstName + " " + actor.LastName : actor.CompanyName
};
MalatDetailsBudgetGridUC.ItemsSource = queryAll;
但是因为我想将我的网格绑定到ObservableCollection,我试图使用以下内容:
ActorsCollection collection = new ActorsCollection(actorType);
var queryAll = from actor in collection
select new
{
ActorName = actor.IsPerson ? actor.FirstName + " " + actor.LastName : actor.CompanyName
};
MalatDetailsBudgetGridUC.ItemsSource = queryAll;
使用它时,我的网格会尽可能地填充(细小的)行,但不会生成任何列。
B.T.W - ActorsCollection是一个实现的ObservableCollection,它将自己与Actor实体相加。
请帮助!!
答案 0 :(得分:1)
嗯,不能说我理解太多了:标题说的是datagrid,但是你在谈论treeview的问题。
假设您将queryAll设置为网格的DataContext,两个代码块之间应该没有任何区别。你确定DataContext被正确设置/绑定了吗?
编辑:也可以尝试使用匿名构造函数创建的类型调试器,这可能会给你一些想法。
编辑:在这里添加答案,问题是第二种形式创建了一个迭代器,并且数据网格(有趣地)被它搞糊涂了。最快的方法是强制枚举器使用ToList()或类似的方法生成集合。