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();
}
}
所以我有一个数据网格,我在其中添加了一个按钮。当我单击一行中的按钮时,我希望将数据从消息框中的那一行中取出。我不知道该怎么做...
这是按钮的 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();
}
}