首页 > 其他分享 >WPF数据绑定UI不更新原因之一

WPF数据绑定UI不更新原因之一

时间:2023-06-30 11:11:32浏览次数:43  
标签:ObservableCollection 数据源 绑定 private values new UI WPF

下面是有问题的代码

private ObservableCollection<Params> _values;

public MainWindow()
{
   InitializeComponent();
   this.dgrid1.ItemsSource = _values;
}

private void btnUploadClick(object sender, RoutedEventArgs e)
{
   _values = new ObservableCollection<Params>
   {
      new AirtightParam
      {
          DeviceNumber = 1,
          ProgramNumber = 2,
          TestType = 3,
      },
   };
}

原因分析:在窗口构造时给datagrid控件设置一个数据源_values,但实际上是null的。在按钮点击时给数据源实例化,实际并不是_values的属性值发生了变化,所以不会去通知UI变更,只能对构造时的_values进行操作清空及Add操作才会通知。

更新代码:

private ObservableCollection<Params> _values;

public MainWindow()
{
   InitializeComponent();
   _values = new ObservableCollection<Params>();    
   this.dgrid1.ItemsSource = _values;
}

private void btnUploadClick(object sender, RoutedEventArgs e)
{
   _values.Clear();
   _values.Add(new AirtightParam
   {
     DeviceNumber = 1,
     ProgramNumber = 2,
     TestType = 3,
   });
}

 

标签:ObservableCollection,数据源,绑定,private,values,new,UI,WPF
From: https://www.cnblogs.com/duju/p/17516113.html

相关文章

  • 界面组件DevExpress WPF v23.1新版亮点 - 启动和内存优化
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • Windows下载MIUI+
    方法一命令行执行下面命令:wingetinstallXiaomi.MIUI+方法二去这个地址下载安装包如果这个地址失效了,请参考https://zhuanlan.zhihu.com/p/574307078下载安装包......
  • 【雕爷学编程】Arduino动手做(140)---MAX3232串口转换板
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • Python的手机测试工具uiautomator2库的实现原理
    使用python通过调试模式测试安卓手机APP,使用uiautomator2库是比较方便的,这个库的源码网址是:https://github.com/openatx/uiautomator2通过阅读源码,大概搞明白了其实现原理,它是通过调用adbutils库,获取UI的hierarchydump数据,然后检索对应的UI节点,计算此节点的UI区......
  • 【雕爷学编程】Arduino动手做(139)---E18-D80避障传感器模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • cruise模型,增程汽车仿真模型,串联混动,基于cruise simulink联合仿真。 实现增程器多点
    cruise模型,增程汽车仿真模型,串联混动,基于cruisesimulink联合仿真。实现增程器多点控制策略,及电制动优先的能量回收策略。提供cruise模型、控制策略文件以及策略说明文档,方便您在模型基础上进行扩展。原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/640342354950.html增程式......
  • cruise软件模型,混动仿真模型,cruise与simulink联合仿真模型
    cruise软件模型,混动仿真模型,cruise与simulink联合仿真模型,Cruise混动仿真模型,混联混动汽车动力性经济性仿真原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/669047203895.html......
  • CH32--用芯片的UID给固件加密
         本文主要介绍怎么利用UID进行固件加密! 一,CH32系列每个芯片都有唯一的身份标识:      二,读取方式:以8/16/32位进行读访问下面地址都是可以的 三,利用UID加密所谓:"道高一尺魔高一丈",只有不断的更新加密技术以增加解密成本或许在一定程度上能够遏制......
  • 【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 代理服务器之 squid、lvs、nginx、haproxy之间的区别
    代理服务器之squid、lvs、nginx、haproxy之间的区别代理服务可简单的分为正向代理和反向代理1、正向代理正向代理服务器:squid用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上......