填充DataGrid与LINQ查询
问题描述:
我有一个WPF形式以下数据网格:填充DataGrid与LINQ查询
<DataGrid Name="DataGrid" AutoGenerateColumns="False" VerticalScrollBarVisibility="Auto">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="200"></DataGridTextColumn>
<DataGridTextColumn Header="Text" Width="200"></DataGridTextColumn>
<DataGridTemplateColumn Header="Edit" Width="50">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button>View Details</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
而且我想从我的代码填充它。我使用LINQ语句来获取值我喜欢把在DataGrid
var query =
(
from modules ...
join ...
join ...
where ...
select new { ID = modules.ID, Name = strings.Name, Text = stringTexts.Text }
);
我想从查询名称和文本来填充列“名称”和“文本”,但我也希望每行都有一个按钮,并且当按下该按钮时,我必须知道被按下的行的ID,但ID不一定在网格上显示。
如何用这些值填充网格?
答
泰尔柱以结合使用
<DataGridTextColumn Header="Name" Width="200" Binding="{Binding Name}" />
等其他列的属性。
代码那么后面
DataGrid.ItemsSource = query;
+0
好吧!但我如何通过ID?我必须把它变成一个隐藏的列吗? – ProgrammerAtWork 2012-08-14 19:09:35
+0
@ProgrammerAtWorkL:简单的'
答
这应该为你工作:
Grid.DataSource = from x in modules
select new
{
x.Name,
x.Text
};
Grid.DataBind();
祝您好运!
你试过了吗?只需设置DataGrid.DataSource = query; DataGrid.DataBind();'看看它是否工作。该按钮是第二步 – 2012-08-14 19:01:01