gpt4 book ai didi

c# - 使用匿名类型集合在 WPF 中填充 DataGrid

转载 作者:太空狗 更新时间:2023-10-30 00:06:02 24 4
gpt4 key购买 nike

我正在用匿名类型的集合填充数据网格(我正在设置 DataGrid 的 DataContext 属性)。并且没有错误。数据网格中没有显示任何内容。我试图对已定义的对象集合进行同样的操作,但同样没有显示任何内容。请你指导我该怎么做。

谢谢!

编辑 1

好的。我尝试设置 ItemsSource 属性并且它有效。但是我得到了奇怪的结果..

enter image description here

编辑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,
Group = "A"
},
new NormalizedResult
{
Key = 3,
Title = "Ржано-Пшеничный",
Volume = 1202.1m,
Weighted = 6.1687m,
Result = 19.3695m,
Group = "A"
}
};

this.dataGrid2.ItemsSource = anonArray;
}

这是我的代码。

然后我再次启动..它只在第三次正确显示?



最佳答案

您可能需要做两件事。第一个,as @Tim suggested , 将查询分配给 DataGrid.ItemsSource属性(property)。

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"只是不裸露 IEnumerable<T>其中 T是匿名类型。通过添加 ToList问题消失了。

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" />

关于c# - 使用匿名类型集合在 WPF 中填充 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com