Wpf 为什么将此DataGrid的ItemsSource绑定到匿名类型集合不起作用?
我有一个匿名类型集合,希望将其绑定到DataGrid的ItemsSource属性。我确认集合中有项目,但我的DataGrid为空 我创建了一个调试转换器,但它并没有到达我的断点,所以在那个点之前似乎有什么地方出错了 我检查了输出窗口,没有发现绑定错误 我的匿名类型如下所示:Wpf 为什么将此DataGrid的ItemsSource绑定到匿名类型集合不起作用?,wpf,linq,datagrid,anonymous-types,itemssource,Wpf,Linq,Datagrid,Anonymous Types,Itemssource,我有一个匿名类型集合,希望将其绑定到DataGrid的ItemsSource属性。我确认集合中有项目,但我的DataGrid为空 我创建了一个调试转换器,但它并没有到达我的断点,所以在那个点之前似乎有什么地方出错了 我检查了输出窗口,没有发现绑定错误 我的匿名类型如下所示: var cars = from c in something.Cars select new { Passengers = from p in c.P
var cars = from c in something.Cars
select new
{
Passengers = from p in c.Passengers
select new
{
Name = p.Name
}
Type = s.Type
};
Cars = cars;
<TabControl ItemsSource="{Binding Cars}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Passengers}" >
<!-- column definitions here -->
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
在这一点之后,我检查了汽车的内容,它确实有数据
我的Xaml看起来像这样:
var cars = from c in something.Cars
select new
{
Passengers = from p in c.Passengers
select new
{
Name = p.Name
}
Type = s.Type
};
Cars = cars;
<TabControl ItemsSource="{Binding Cars}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Passengers}" >
<!-- column definitions here -->
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
类型上的TextBlock绑定显示正确的数据
我错过了什么
更新:
linq结果的类型为System.linq.Enumerable.WhereSelectListIterator。我有另一个DataGrid,在这里绑定到匿名类型,但是我注意到System.linq.Enumerable.Where SelectEnumerableInterator类型的linq结果。这是一个IEnumerable.you应该.ToList同时列出乘客和汽车:乘客=c.Passentials.Selectx=>x.Name.ToList和汽车=cars.ToList还注意到,如果您从实体框架中带来这个,您可能需要。包括乘客属性以使其填充数据。@HighCore我尝试调用ToList,但没有成功: