WPF MvvM DataGrid数据不刷新的原因

后台修改前台不刷新可能的原因:

1.前台页面没有写Binding

2.后台数据定义的字段没有get和set

3.数据容器没有使用ObservableCollection

4.字段内容修改时没有重置数据源

首先简单举例界面代码如下:

<DataGrid Name="DG" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="姓名" Binding="{Binding Name}" />
</DataGrid.Columns>
</DataGrid>

必须对DataGrid设置   ItemsSource="{Binding}" 

字段设置必须写  Binding="{Binding Name}" 

对应数据为:

 public class DataItem
 {
        public string Name { get; set; }
 }

字段名称必须和页面保持一致,字段必须是属性,包含get和set

定义成员变量:

 ObservableCollection<DataItem> m_data = new ObservableCollection<DataItem>(); 

关联前后台数据:

  DG.ItemsSource = m_data; 

ObservableCollection容器用法类似于List,这玩意可以在增加、删除(也就是Count发生变化)元素时发出通知。

所以我们在后台增加数据: DataItem cm = new DataItem(); cm.Name = "AA"; m_data.Add(cm);     界面会发生变化

在后台删除数据: m_data_data.RemoveAt(0);    界面也会发生变化

但是我们修改数据: m_data[0].Name = "MM";     此时界面并不会发生变化(因为Count没有发生变化。。。)

所以这个时候 DG.ItemsSource = null; DG.ItemsSource = m_data;  界面就可以变化了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值