我被困在一个似乎是基本的DataGridTemplateColumn问题上。
我创建了一个WPF DataGrid (下面的示例代码)带有DataGridTemplateColumn的。在DataGridTemplateColumn中,我为CellEditingTemplate创建了一个UserControl。在此UserControl中,我有一个按钮(和/或希望监视按键等),用于取消(或提交)对数据单元格的更改。
如何从DataGrid?中通知CancelEdit?
<DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding Items}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding Text}"/>
<Button Content="Cancel!">
<!--
How to make this Button Cancel Editing?
Click="Cancel"
Command="{Binding CancelCommand}"
-->
</Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>发布于 2015-09-12 22:35:09
简单的方法是给网格一个名称(theGrid),向按钮添加一个单击处理程序,如下所示.
<Button Content="Cancel!" Click="Button_Click">然后...and取消处理程序中的编辑:
private void Button_Click(object sender, RoutedEventArgs e)
{
theGrid.CancelEdit();
}这样做的“正确”方法是使用命令处理程序创建视图模型,将按钮的command属性绑定到它,然后使用附加的行为来监视视图模型中的事件,并在触发时触发cancel。
https://stackoverflow.com/questions/32542552
复制相似问题