c# 如何通过从数据网格中的按钮单击按钮从数据网格中获取数据?

c# how to get data out of datagrid by buttonclick from button in datagrid?

所以我有一个数据网格,我在其中添加了一个按钮。当我单击一行中的按钮时,我希望将数据从消息框中的那一行中取出。我不知道该怎么做...

这是按钮的 XAML 代码: `

                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button x:Name="btnAdd" Click="BtnAdd_Click" Height="40" Width="80" Padding="2" HorizontalAlignment="Right" Margin="2">
                            <materialDesign:PackIcon Kind="AddShoppingCart"/>
                        </Button>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>

I have tried this:

    private void BtnAdd_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            var row = (DataGridRow)grid1.SelectedItem;
            MessageBox.Show(row.ToString());
        }
        catch (System.Exception E)
        {
            MessageBox.Show(E.ToString());
        }

`

所以我想要的结果是消息框中数据网格中的项目(来自我单击按钮的行)。

如果我理解你的问题,我相信你应该将 grid1.SelectedItem 转换为你在数据绑定中使用的类型而不是 DataGridRow,这样它就像 var row = (MyTypeVm)grid1.SelectedItem;,并且在class 表示该类型,您可以覆盖 .ToString() 方法以显示您喜欢的数据。

例如: 你的类型应该是这样的

public class MyTypeVm
{
   public string MyStringProperty {get;set}
   public int MyIntProperty {get;set}
   public override string ToString()
   {
     return MyStringProperty + MyIntProperty.ToString();
   }  
}