C# Winform DataGrid 绑定List<> Or ObservableCollection<> 类型无法自动刷新问题
时间: 2023-11-12 09:06:03 浏览: 50
在C# Winform中,如果你要绑定一个List<>或ObservableCollection<>类型的数据到DataGrid控件中,当你修改了数据源中的数据时,界面不会自动刷新。
解决这个问题的方法是在数据源上实现INotifyPropertyChanged接口,并在属性值发生变化时触发PropertyChanged事件。这样当数据源中的数据发生变化时,DataGrid控件会自动刷新。
以下是一个示例代码:
```csharp
public class Person : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
if (value != name)
{
name = value;
OnPropertyChanged("Name");
}
}
}
private int age;
public int Age
{
get { return age; }
set
{
if (value != age)
{
age = value;
OnPropertyChanged("Age");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
在这个示例中,Person类实现了INotifyPropertyChanged接口,并在Name和Age属性的setter方法中触发了PropertyChanged事件。
接下来,你可以将Person对象的集合绑定到DataGrid控件中:
```csharp
List<Person> personList = new List<Person>();
personList.Add(new Person() { Name = "Tom", Age = 18 });
personList.Add(new Person() { Name = "Jerry", Age = 20 });
dataGridView1.DataSource = personList;
```
现在,当你修改Person对象的属性值时,DataGrid控件会自动刷新。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)