问题描述
|
我正在用匿名类型的集合填充datagrid(我正在设置
DataGrid\'s DataContext
属性)。而且没有错误。在datagrid中没有任何显示。我尝试使用定义的对象集合进行相同操作,但是再次不显示任何内容。请您告诉我该怎么办。
谢谢!
编辑1
好。我试图设置ItemsSource属性,它可以工作。但是我得到的结果很奇怪。
编辑2
我不知道如何,但是3d启动后,现在可以正常工作了吗?
private void ShowABCResultsButtonOnClick(Object sender,RoutedEventArgs e)
{
var anonArray = new List<NormalizedResult>
{
new NormalizedResult
{
Key = 1,Title = \"Колос\",Volume = 1322.01m,Weighted = 6.7840m,Result = 6.7840m,Group = \"A\"
},new NormalizedResult
{
Key = 2,Title = \"Украинский Новый\",Volume = 1250.47m,Weighted = 6.4169m,Result = 13.2009m,new NormalizedResult
{
Key = 3,Title = \"Ржано-Пшеничный\",Volume = 1202.1m,Weighted = 6.1687m,Result = 19.3695m,Group = \"A\"
}
};
this.dataGrid2.ItemsSource = anonArray;
}
这是我的代码。
再一次,我启动了..并且仅第三次正确显示?
解决方法
您可能需要做两件事。如@Tim建议的那样,第一个是将查询分配给
DataGrid.ItemsSource
属性。
myDataGrid.ItemsSource = from a in x
select new { Prop1 = a.A,Prop2 = a.B,... };
第二位是在DataGrid
上启用自动列生成:
<DataGrid x:Name=\"myDataGrid\"
AutoGenerateColumns=\"True\" />
编辑:我已经使用自动列生成和带有普通LINQ查询的匿名类型重新创建了您的图片。因此,您将需要使用显式列来使用或切换为实型。
<DataGrid x:Name=\"myDataGrid\"
AutoGenerateColumns=\"False\">
<DataGrid.Columns>
<DataGridTextColumn Header=\"Property 1\"
Binding=\"{Binding Prop1}\"/>
<DataGridTextColumn Header=\"Property 2\"
Binding=\"{Binding Prop2}\"/>
</DataGrid.Columns>
</DataGrid>
编辑2:您可以使用AutoGenerateColumns=\"True\"
,而不能将裸ѭ8用作T
是匿名类型。加10英镑,问题就解决了。
myDataGrid.ItemsSource = (from m in typeof(int).GetMethods()
select new
{
Name = m.Name,ReturnType = m.ReturnType.FullName
}).ToList();
XAML然后返回到:
<DataGrid x:Name=\"myDataGrid\"
AutoGenerateColumns=\"True\" />
, 可以肯定的是,您应该设置DataGrid的ѭ13.。
, 在数据网格中绑定匿名对象时,请确保使用与匿名对象相同的属性名称,并确保该集合包含项。