后台修改前台不刷新可能的缘由:spa
1.前台页面没有写Bindingcode
2.后台数据定义的字段没有get和setblog
3.数据容器没有使用ObservableCollectionget
4.字段内容修改时没有重置数据源string
首先简单举例界面代码以下:io
<DataGrid Name="DG" ItemsSource="{Binding}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="姓名" Binding="{Binding Name}" /> </DataGrid.Columns> </DataGrid>
必须对DataGrid设置 ItemsSource="{Binding}" class
字段设置必须写 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; 界面就能够变化了