C# ViewModel中的DataGridCell设置编辑模式
在我的应用程序中,我有一个带有数据网格的C# ViewModel中的DataGridCell设置编辑模式,c#,wpf,mvvm,datagrid,C#,Wpf,Mvvm,Datagrid,在我的应用程序中,我有一个带有数据网格的UserControl。数据网格中的一个单元格定义如下: <DataGridTemplateColumn Header="Alternative path" Width="Auto" MinWidth="60" SortMemberPath="OtherModulePath"> <DataGridTemplateColumn.CellTemplate> <DataTemplate>
UserControl
。数据网格中的一个单元格定义如下:
<DataGridTemplateColumn Header="Alternative path" Width="Auto" MinWidth="60" SortMemberPath="OtherModulePath">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding OtherModulePath}" Style="{StaticResource DataGridTextBlockStyle}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding OtherModulePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Padding="4,1"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource BaseDataGridCellStyle}">
<Setter Property="AutomationProperties.Name"
Value="{Binding OtherModulePath,
Converter={Converter:AutomationPropertiesNameFromEmptyToSpaceConverter},
FallbackValue=' '}"/>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>
如果我选择单元格并用鼠标左键再次单击,编辑-文本框
将显示良好
在数据网格
上方有一个按钮
。单击此按钮
我显示的DataGridCell
应切换到编辑模式,以便OtherModulePath的文本框
应可见
如何使用MVVM实现这一点
我知道如何使用代码隐藏,但我不知道如何重新开始数据绑定。DataGrid有一个名为BeginEditCommand
的命令,您可以将按钮的命令绑定到该命令,如下所示:
//suppose your grid has name of dg
<Button Command="{x:Static DataGrid.BeginEditCommand}"
CommandTarget="{Binding ElementName=dg}">
<!-- ... -->
</Button>
//假设您的电网名称为dg