0

以下のように、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 のボタンをクリックすると、STUDENT_ID値を取得する必要があります。これどうやってするの ?

4

2 に答える 2

0

最後に自分で答えを見つけました。

btnEdit_Clickメソッドで、

dynamic customerRow = stDataGrid.SelectedItem;
MessageBox.Show(customerRow.STUDENT_ID+"");
于 2013-10-02T10:11:30.140 に答える
0

ボタンと同じタイプの添付プロパティを設定し、行内のすべてのセルの親であるDataGridRowコントロールstudent_idに相対的にバインドします。datacontext.student_id

メソッドに入ったらbtnEdit_Click、添付プロパティから値を読み取るだけです。

于 2013-10-02T07:56:12.807 に答える