WPF DataGrid - 编辑结束后单元格的新值

swift

1个回答

写回答

KuTony05

2025-06-22 12:25

+ 关注

使用 WPF DataGrid 控件可以方便地显示和编辑大量数据。当用户编辑一个单元格并完成编辑后,我们可能想要获取这个单元格的新值,以便进行后续操作。在本篇文章中,我们将介绍如何在 WPF DataGrid 编辑结束后获取单元格的新值,并提供一个简单的案例代码来演示这个过程。

获取编辑结束后的新值

当用户在 WPF DataGrid 中编辑一个单元格时,编辑过程分为两个阶段:开始编辑和结束编辑。在开始编辑时,原始值会被保存下来,以便在编辑结束后进行比较。编辑结束后,我们可以通过订阅 DataGrid 的 CellEditEnding 事件来获取编辑结束后的新值。

在 CellEditEnding 事件处理程序中,我们可以使用以下代码来获取编辑结束后的新值:

csharp

private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)

{

// 获取编辑结束后的单元格

DataGridCell cell = e.EditingElement as DataGridCell;

// 获取新值

string newValue = (cell.Content as TextBlock).Text;

// 进行后续操作

// ...

}

在上述代码中,我们首先将编辑结束后的单元格转换为 TextBlock,然后获取其中的文本值作为新值。接下来,我们可以根据需要进行后续操作,比如更新数据库或执行其他逻辑。

案例演示

为了更好地理解如何获取编辑结束后的新值,我们可以通过一个简单的案例来演示。假设我们有一个学生信息表格,其中包含学生的姓名和年龄。我们希望能够在编辑结束后获取到学生的新姓名和年龄。

首先,我们需要在 XAML 中定义一个 DataGrid 控件,并绑定到学生信息集合:

xaml

<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" CellEditEnding="DataGrid_CellEditEnding">

<DataGrid.Columns>

<DataGridTextColumn Header="姓名" Binding="{Binding Name}" />

<DataGridTextColumn Header="年龄" Binding="{Binding Age}" />

</DataGrid.Columns>

</DataGrid>

然后,在代码中定义一个 Student 类,其中包含姓名和年龄属性:

csharp

public class Student

{

public string Name { get; set; }

public int Age { get; set; }

}

接下来,我们需要创建一个学生信息集合并将其绑定到 DataGrid 控件:

csharp

List<Student> students = new List<Student>

{

new Student { Name = "张三", Age = 18 },

new Student { Name = "李四", Age = 20 },

new Student { Name = "王五", Age = 22 }

};

dataGrid.ItemsSource = students;

最后,我们可以在 CellEditEnding 事件处理程序中获取编辑结束后的新值,并将其输出到控制台:

csharp

private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)

{

DataGridCell cell = e.EditingElement as DataGridCell;

string newValue = (cell.Content as TextBlock).Text;

Console.WriteLine("新值: " + newValue);

}

当我们在 DataGrid 中编辑一个单元格并完成编辑后,控制台将输出相应单元格的新值。

通过订阅 WPF DataGrid 的 CellEditEnding 事件,我们可以方便地获取到编辑结束后单元格的新值。本文提供了一个简单的案例来演示如何使用该功能。通过这种方法,我们可以在用户编辑完单元格后进行后续操作,比如更新数据库或执行其他逻辑。希望本文对你理解如何获取 WPF DataGrid 编辑结束后的新值有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号