前台
csharp
<DataGrid
AutoGenerateColumns="False"
Background="White"
CanUserAddRows="True"
Grid.Row="1"
RowEditEnding="DataGrid_OnRowEditEnding"
RowHeight="60"
SelectionUnit="CellOrRowHeader"
x:Name="DataGrid">
<!-- Mode=TwoWay, UpdateSourceTrigger=PropertyChanged 这两个设置很重要,没有的话无法实现双向绑定-->
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding ZhuJieNeiRong, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Header="注解内容"
Width="*">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
<!-- -->
<!-- 这里的功能是 如果设定了行高,加上这个样式 编辑表格时 内容是一直垂直居中-->
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="TextBox">
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
</DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
后台
csharp
private void DataGrid_OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
var newItem = e.Row.Item as Zjwz;
Console.WriteLine("1111:"+ _gridZhuJieList);
// 检查新行是否为空
if (newItem != null)
{
if (!string.IsNullOrWhiteSpace(newItem.ZhuJieNeiRong))
{
}
else
{
// 如果新行为空,取消新增
e.Cancel = true;
// 可选:可以选择清空新行的内容,或者提示用户
// MessageBox.Show("新行不能为空!");
}
}
}
}