我的WPF应用程序窗口上有一个数据网格,数据绑定到一个可观察的集合 . 在DataGrid中,我设置了属性 CanUserDeleteRows=True
,我可以通过按键盘上的“删除”按钮删除该行 .
这对我来说看起来不太直观 . 我想保留一个额外的列,其中按下删除按钮,该行应删除 . (类似于ASP.NET中的ItemTemplate可以做的事情)
<DataGrid x:Name="dgrQuestions" AutoGenerateColumns="False" Height="224" HorizontalAlignment="Left" Margin="42,73,0,0" VerticalAlignment="Top" Width="663" ItemsSource="{Binding QueList}" CanUserAddRows="True" CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Qu" Binding="{Binding Path=Que, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="An" Binding="{Binding Path=Ans, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Hi" Binding="{Binding Path=Hi, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
如何通过在datagrid本身内使用 button
来获取删除行的功能
2 回答
您可以添加
DataGridTemplateColumn
,其中包含一个调用Delete
命令的按钮 . DataGrid将处理Delete命令并删除该行 .您必须将DataGridTemplateColumn添加到网格中 . 就像是
然后将您的按钮绑定到任何ID或项目,您可以在后面的代码中处理事件(OnDelete),或者您可以将按钮直接绑定到命令,但是您需要将SelecteItem绑定到ViewModel并在其上处理它执行命令: