WPF 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; }
 }

扫描二维码关注公众号,回复: 9502518 查看本文章

字段名称必须和页面保持一致,字段必须是属性,包含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; 界面就可以变化了

发布了42 篇原创文章 · 获赞 7 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/jiyanglin/article/details/92443035