记一次WPF的DataGrid绑定命据

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

之前不停在用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的属性
(这里就很麻烦,必须要手动绑定,如果不是建的列,就不需要绑定)




绑定完之后,去到这个xaml的cs代码那里,在窗体类下面将Person实例化:
ObservableCollection People = new ObservableCollection();
这里用的是ObservableCollection,问的AI,解释是
“这里利用了 ObservableCollection 而不是普通的集合类型,由于 ObservableCollection 实现了 INotifyCollectionChanged 接口,这意味着当集合中的项发生变革时,UI 将主动更新以反映这些变革。”
我理解的是当People里面的数据发生变革后,DataGrid界面上也会发生变革;我一开始用的是List,但是这样的话,People的数据发生变革了,DataGrid界面却不会发生变革。
然后在初始化的时候,给People增长一些初始数据
People = new ObservableCollection()
{
// 预先添加一些示例数据
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代码截图:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表