datagrid 数据显示异常!高手来看看

Stevenzhu18 2019-07-05 07:14:17
背景:根据不同要求,在datagrid显示不同的表格,每张表的表头不完全一致,一次只显示一个表。这些表都是来自数据库

//在程序启动时:定义了一个全局变量dataset,一个全局字符串biaoming
public static DataSet inputrecordds = new DataSet();
public string biaoming="";
....
....
....

//按钮的功能:当biaoming= HC,显示A表;当biaoming=AR,显示B表
SqlDataAdapter sqlda = new SqlDataAdapter(sql1, connect);//从数据表提取数据到sqlda
inputrecordds.Tables.Clear();
sqlda.Fill(inputrecordds, "inputrecordtable");//放入数据的表命名为inputrecordtable
inputrecord.DataContext = inputrecordds;//把ds的数据set到datagrid的datacontaxet

点击按钮后,第一次运行正常显示,当把biaoming变化为AR后,datagrid就没有显示内容了;重新退出程序,先选择AR,显示也是正常,把biaoming改为HC,同样显示不了。
调试发现inpuetrecordds的数据是正确的,就是显示不到datagrid上。

后来把inputrecordds变成局部变量,就可以了根据biaoming的变化正常显示, 但由于其他按钮也用到inputrecordds数据(改变inputrecordds里面的数据),如果定义为局部,另一个按钮的功能就不能实现了。

//把inputrecordds变为局部变量的代码
SqlDataAdapter sqlda = new SqlDataAdapter(sql1, connect);//从数据表提取数据到sqlda
dataset inputrecordds=new dataset();
inputrecordds.Tables.Clear();
sqlda.Fill(inputrecordds, "inputrecordtable");//放入数据的表命名为inputrecordtable
inputrecord.DataContext = inputrecordds;//把ds的数据set到datagrid的datacontaxet

从这个代码看到,局部和全局是有区别的,定义为全局变量,就是为了能方便修改datagrid 的数据。
如何解决?谢谢
...全文
593 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
RunnerDNA 2019-10-16
  • 打赏
  • 举报
回复
inputrecordds new的时候做下判断是否非null,为null时再new
RunnerDNA 2019-10-16
  • 打赏
  • 举报
回复
可以尝试下:DataSet inputrecordds在定义全局变量的时候不要new,只定义,在具体使用的时候在创建对象

public DataSet inputrecordds;
......
{
SqlDataAdapter sqlda = new SqlDataAdapter(sql1, connect);//从数据表提取数据到sqlda
inputrecordds=new dataset();
sqlda.Fill(inputrecordds, "inputrecordtable");//放入数据的表命名为inputrecordtable
inputrecord.DataContext = inputrecordds;
Nick_Ngai 2019-10-15
  • 打赏
  • 举报
回复
绑定的列表用ObservableCollection<Model实体类>,有变化的实体属性用INotifypropertyChanged接口。 XAML需要有变化的数据绑定时加UpdateSourceTrigger=PropertyChanged。
  • 打赏
  • 举报
回复
多个地方操作集合就应该是全局变量,至于更新了一次就不更新了,应该去理解WPF中的“属性更改通知”机制,集合作为属性,要能在内容发生变化时通知到UI呈现,这是WPF的优势,查询ObservableCollection以及INotifypropertyChanged接口即可。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧