如何在DataGrid.RowDetailsTemplate中的文本块内访问数据

时间:2019-04-10 08:06:39

标签: c# wpf xaml

如何从TextBlock Name="txtSellerId"

获取数据
<Grid Margin="10">
        <DataGrid Name="dgUsers" AutoGenerateColumns="False"  LoadingRowDetails="dgUsers_LoadingRowDetails">
            <DataGrid.Columns>
            </DataGrid.Columns>
            <DataGrid.RowDetailsTemplate >
                <DataTemplate >
<DockPanel Background="GhostWhite">
<grid>
<TextBlock Name="txtSellerId" Text="{Binding SellerId, StringFormat=d}" Grid.Column="1" Grid.Row="2" />
                        </Grid>

                    </DockPanel>
                </DataTemplate>

            </DataGrid.RowDetailsTemplate>

        </DataGrid>

2 个答案:

答案 0 :(得分:1)

要以编程方式获取价值,您可以尝试此方法

dgUsers.LoadingRowDetails += dgUsers_LoadingRowDetails;

 void dgUsers_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
       {
         var textBlockValue = (e.DetailsElement as FrameworkElement).FindName("txtSellerId") as TextBlock;
       }    

答案 1 :(得分:0)

您可以将模型绑定到数据网格行,并在代码隐藏中使用它。

var user = (User)myDataGrid.SelectedItem;
var userId = user.Id;

一个简单的示例:DataGrid with row details