WPF-动态生成DataGrid

WPF-动态生成DataGrid,第1张

在封装自定义组件的时候,看到很多类似表格的控件,表格中的数据都不是固定的,每个表格的表条和内容都不一样,如果直接在 xaml 文件中定义 DataGrid 的话,就显得很麻烦了,可以将期封装成一个动态生成的 DataGrid ,只需按照一定规则的数据格式,就可以生成表格。如下所示为封装后的一个动态表格:

首先来定义一个数据格式,数据格式相对比较简单,只需一个表头字段、内容字段、列宽字段。如下所示:

首先创建一个 UserControl ,然后在里面放入一个 DataGrid ,并设置样式,如下所示:

在 .cs 文件中,添加一个方法,用于传递数据,并根据数据动态生成表格,如下所示:

创建好表格后,然后再需要地方通过如下方式进行引入:

然后在 loaded 事件中加入测试数据,来调用 loadData 方法动态添加表格信息,如下所示:

按以下步骤来做,就可以快速的创建一个自定义的动态表格了。

个人博客

会在binding中用 Converter 么, Binding="{Binding Direction,Converter={StaticResource vcdn}}"

DataGridTextColumn dc = new DataGridTextColumn()dc.IsReadOnly = truedc.Header =“列标题”dc.Width = 60dataGrid1.Columns.Add(dc)

首先需要弄清楚的是datagrid是用来呈现后台绑定的数据集合的。所以楼主想增加datagrid里的数据的话,可以直接通过添加后台数据来实现。wpf里绑定方式有许多种,默认为单向绑定。即后台数据变化,前台不会刷新。前台做了某些交互,后台也不会发生数据的变化。当然,如果只需要完成楼主的意图:即后台数据刷新,前台表格刷新的话,只需要将后台的数据实体实现INotifyPropertyChanged接口就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11368186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存