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

下面是有问题的代码

复制代码
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,
   });
}
复制代码

 

posted @   獨懼  阅读(546)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示