wpf Datagrid 自定义

小占时光 2023-09-12 09:28:51 2902


datagrid 自定义表格,如果出现列表的列数不确定,则会出现,不知道绑定字段名称的问题。这样的话,就使用动态类来定义属性,每加一个列就增加一个属性,使用唯一标识属性名称,绑定的时候就是用此属性名称来绑定。首先定义模板
 
此类未自定义列的类型,抽象函数必须实现,但真正用到的是 GenerateElement 方法。里面重新定义binding信息和content内容
在界面resource 资源中定义资源,即列要加载的样式,如果是绑定行row 中的内容则需要使用datecontext,如果只是单元格中的内容直接使用banding即可。
 
后台代码需要先加载datagrid 对象,之后创建自定义的列,每加一列就新增一个实例,并将binding的字段赋值到列,这样列和绑定的字段都有了,余下只要构建数据源即可。由于数据源字段不确定,所以使用动态类。
 
 
 
动态类属性也可以使用复杂类型
 
这样就可以了,如果出现datagrid 滚动滚动条时数据混乱的话,使用 Binding="{Binding Rank, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"类似方式给UpdateSourceTrigger赋值,
另一种情况是,在定义列的代码中给datacontext赋值了,此处dataItem 不是新值,而是旧值,如果绑定了就会出现cell单元格数据混乱
 
 

最后一次修改 : 2025/1/23 上午3:31:27

优秀
123
分享
123
奶茶
123
文章版权声明:版权归原作者(小占时光)所有。未经明确书面许可,严禁任何个人或组织以任何形式进行商业性或非商业性的使用、转载或抄袭。
评论