C # Как получить данные из сетки данных, нажав кнопку от кнопки в сетке данных? - PullRequest
0 голосов
/ 08 января 2019

Итак, у меня есть сетка данных, в которую я добавил кнопку. Когда я нажимаю кнопку в строке, я хочу, чтобы данные из этой строки находились в окне сообщения. Понятия не имею, как это сделать ...

Вот код 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());
        }

`

Итак, я хочу получить результаты в сетке данных (из строки, где я нажал кнопку) в окне сообщения.

1 Ответ

0 голосов
/ 08 января 2019

Если я понял ваш вопрос, я считаю, что вы должны привести grid1.SelectedItem к типу, который вы используете в привязке данных вместо DataGridRow, так что это будет похоже на var row = (MyTypeVm)grid1.SelectedItem;, а в классе, представляющем этот тип, вы можете переопределить .ToString() метод для отображения этих данных, как вам нравится.

в примере: Ваш тип будет что-то вроде этого

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