记一次WPF的DataGrid绑定数据 DataGrid 绑定数据 Data Grid 记一次 WPF
之前一直在用winform,但是感觉界面不好看,然后就自己在网上学习WPF。一开始看到DataGrid的时候,还以为它是DataGridView,然后用winform的方法绑定数据发现不行,在不断的查找之后,终于学会了怎么简单的绑定数据。
工具:VStudio2022
框架:.net framework 4.8
新建一个WPF
窗体,再把DataGrid拖到窗体上之后,在.xaml那给它配置name属性dataGrid
由于我是想自己手动建列,所以把AutoGenerateColumns属性设置为false,如果不想手动设置列,直接默认为true就好了
随后新建三列
添加完成之后,新建一个类,这个类就是要绑定到DataGrid的实体,
新建Person类
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string City { get; set; }
}
建完之后,给刚刚那三列绑定Person的属性
(这里就很麻烦,必须要手动绑定,如果不是建的列,就不需要绑定)
<DataGridTextColumn Binding ="{ Binding Name }" Header="第一个文本"/>
<DataGridTextColumn Binding ="{ Binding Age }" Header="第二个文本"/>
<DataGridTextColumn Binding ="{ Binding City }" Header="第三个文本"/>
绑定完之后,去到这个xaml的cs代码那里,在窗体类下面将Person实例化:
ObservableCollection<Person> People = new ObservableCollection<Person>();
这里用的是ObservableCollection,问的AI,解释是
“这里使用了 ObservableCollection
我理解的是当People里面的数据发生变化后,DataGrid界面上也会发生变化;我一开始用的是List,但是这样的话,People的数据发生变化了,DataGrid界面却不会发生变化。
然后在初始化的时候,给People增加一些初始数据
People = new ObservableCollection<Person>()
{
// 预先添加一些示例数据
new Person() { Name = "张三", Age = 30, City = "北京" },
new Person() { Name = "李四", Age = 28, City = "上海" }
};
然后直接绑定到dataGrid上
dataGrid.ItemsSource = People;
运行效果图:
然后增加一个点击按钮事件那里加上
People.Add(new Person() { Name = "新用户", Age = 25, City = "广州" });
.cs代码截图: