我的 WPF 应用程序中有 DataGrid ,如下所示。
<DataGrid Name="stDataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Edit" CanUserResize="False" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button" Click="btnEdit_Click">
<StackPanel>
<Image Source="images/edit.png"/>
</StackPanel>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Path=Age}" Header="Age" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Path=Sex}" Header="Sex" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
将数据绑定到DataGrid中。
using (var context = new CLASS_DBEntities())
{
var query = from s in context.STUDENT
orderby s.STUDENT_NAME
select new {s.STUDENT_ID, Name = s.STUDENT_NAME, Age = s.STUDENT_AGE,
Sex = s.STUDENT_SEX};
stDataGrid.ItemsSource = query.ToList();
}
当用户在DataGrid中单击Button时,我需要获得STUDENT_ID
值。我怎么能这样做?
答案 0 :(得分:0)
在按钮上设置与student_id
相同类型的附加属性,并将其与 DataGridRow 控件的datacontext.student_id
相关联,该控件应该是您所有人的父级细胞连续。
输入btnEdit_Click
方法后,只需从附加属性中读取值。
答案 1 :(得分:0)
终于找到了答案。
在btnEdit_Click
方法中,
dynamic customerRow = stDataGrid.SelectedItem;
MessageBox.Show(customerRow.STUDENT_ID+"");