WPF DataGrid 源更新单元格已更改

swift

1个回答

写回答

18931739232

2025-07-06 18:30

+ 关注

使用WPF DataGrid控件时,常常需要根据数据源的更新来更新单元格的内容。本文将介绍如何使用WPF DataGrid来实现这一功能,并提供一个案例代码来说明这个过程。

案例代码:

csharp

// 创建一个简单的数据模型

public class Person

{

public string Name { get; set; }

public int Age { get; set; }

}

// 创建一个数据源

List<Person> people = new List<Person>

{

new Person { Name = "John", Age = 25 },

new Person { Name = "Jane", Age = 30 },

new Person { Name = "Mike", Age = 35 }

};

// 将数据源绑定到DataGrid控件

dataGrid.ItemsSource = people;

在上述代码中,我们首先定义了一个简单的数据模型Person,包含姓名和年龄两个属性。然后创建了一个List类型的数据源people,并初始化了一些数据。最后,将数据源绑定到名为dataGrid的DataGrid控件上。

接下来,我们需要在数据源更新时更新DataGrid中的单元格。为了实现这一点,我们可以使用INotifyPropertyChanged接口和ObservableCollection类。

csharp

// 实现INotifyPropertyChanged接口的数据模型

public class Person : INotifyPropertyChanged

{

private string name;

public string Name

{

get { return name; }

set

{

if (name != value)

{

name = value;

OnPropertyChanged("Name");

}

}

}

private int age;

public int Age

{

get { return age; }

set

{

if (age != value)

{

age = value;

OnPropertyChanged("Age");

}

}

}

public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged(string propertyName)

{

PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

}

}

// 创建一个可观察的数据源

ObservableCollection<Person> people = new ObservableCollection<Person>

{

new Person { Name = "John", Age = 25 },

new Person { Name = "Jane", Age = 30 },

new Person { Name = "Mike", Age = 35 }

};

// 将数据源绑定到DataGrid控件

dataGrid.ItemsSource = people;

在上述代码中,我们将Person类实现了INotifyPropertyChanged接口,并在属性的setter方法中调用OnPropertyChanged方法来触发属性更改事件。然后,我们创建一个ObservableCollection类型的数据源people,并将其绑定到DataGrid控件上。

更新单元格内容:

当数据源中的属性发生更改时,DataGrid控件会自动更新单元格的内容。例如,如果我们想要更改John的年龄为40岁,只需要在代码中进行如下操作:

csharp

people[0].Age = 40;

DataGrid控件会自动更新显示John的年龄为40岁的单元格。

在本文中,我们学习了如何使用WPF DataGrid控件来根据数据源的更新来更新单元格的内容。我们首先介绍了如何将数据源绑定到DataGrid控件上,然后通过实现INotifyPropertyChanged接口和使用ObservableCollection类来实现单元格内容的更新。通过以上方法,我们可以方便地在WPF应用程序中使用DataGrid控件,并根据数据源的变化来更新单元格内容。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号