所以我有一个数据网格,在其中添加了一个按钮。当我单击一行中的按钮时,我希望在消息框中删除数据,该行中的内容。我不知道该怎么做...
这是按钮的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());
}
`
所以我想要的结果是消息框中数据网格中的项目(单击按钮的行)。
答案 0 :(得分:1)
如果我理解了您的问题,我相信您应该将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();
}
}