我有一个wpf格式的以下数据网格:
<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不必显示在网格上。
如何使用这些值填充网格?
答案 0 :(得分:2)
使用
告诉列绑定到属性<DataGridTextColumn Header="Name" Width="200" Binding="{Binding Name}" />
等其他专栏。
然后在代码背后
DataGrid.ItemsSource = query;
答案 1 :(得分:0)
这应该适合你:
Grid.DataSource = from x in modules
select new
{
x.Name,
x.Text
};
Grid.DataBind();
祝你好运!