背景介绍:

一行数据 比如 有 姓名 年龄 id 号 当 id 变化 更新 id 当 年龄变化 更新年龄 以 id 作为编号 如果 id 变化了则新增 否则更改

1 封装 NotifyObject 类

public class NotifyObject : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;//----------------------------激发事件public void OnPropertyChanged(string val){PropertyChangedEventHandler handler = PropertyChanged;if(handler != null){handler(this, new PropertyChangedEventArgs(val));}}}

2 封装 model 类

public class Tags_Model : NotifyObject{public Tags_Model(){Clear();}public void Clear(){id = string.empty;name = string.Empty;age = string.Empty;}int id;public int ID{get { return id; }set{id = value;OnPropertyChanged("ID");}}string name;public string Name{get { return name; }set{name = value;OnPropertyChanged("Name");}}public string age;public string Age{get{return age;}set{age = value;OnPropertyChanged("Age");}}}

3  封装 接口类 ITest

public abstract class ITest : NotifyObject{protected ObservableCollection<Tags_Model> _orderItemList = null;public void Add(Tags_Model model){if (model != null){System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{_orderItemList.Add(model);}));}}public ObservableCollection<Tags_Model> OrderItemList{get { return _orderItemList; }set { _orderItemList = value; OnPropertyChanged("OrderItemList"); }}}

4 定义子类

public class Test : ITest{public Test(){if(_orderItemList == null){_orderItemList = new ObservableCollection<Tags_Model>();}}}

5 定义 viewModel 类

 public class vm_Test : NotifyObject{private Test ieas = null;public vm_Test(){if ( ieas == null ) { ieas = new Test(); }}public Test Test{get { return ieas; }set { ieas = value; OnPropertyChanged("Test"); }}}

6 xaml

<Grid><DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Height="355" Margin="10,55,0,0" AutoGenerateColumns="False"IsReadOnly="True"Width="774"FontFamily="微软雅黑"FontSize="20"ItemsSource ="{Binding Test.OrderItemList}"><DataGrid.Columns><DataGridTemplateColumn Width="80" Header="id"><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBlock x:Name="txtID"Text="{Binding ID}"VerticalAlignment="Center"HorizontalAlignment="Center"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn><DataGridTemplateColumn Width="80" Header="name"><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBlock x:Name="txtID"Text="{Binding Name}"VerticalAlignment="Center"HorizontalAlignment="Center"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn><DataGridTemplateColumn Width="80" Header="age"><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBlock x:Name="txtID"Text="{Binding Age}"VerticalAlignment="Center"HorizontalAlignment="Center"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns></DataGrid></Grid>

6 主页面

public vm_Test _view = null;Dictionary<string, Tags_Model> dic = null;public MainWindow(){InitializeComponent();if ( _view == null ) { _view = new vm_Test(); }if(dic == null){dic = new Dictionary<string, Tags_Model>();}if ( _view != null ){this.DataContext = _view;}if ( _view != null && _view.Test != null ){Tags_Model t = new Tags_Model(){ID = 1,};_view.Test.Add(t);t.age = "dkladjla";dic.Add(t.ID.ToString(), t);t.name = "dkaldkaldd";}
}

wpf dataGrid 实现单行某个数据变化 ui 界面随之响应相关推荐

  1. 【QT】Qt项目demo:数据在ui界面上显示,鼠标双击可弹窗显示具体信息

    一.项目总览 二.运行结果 I.鼠标单击 II.鼠标双击 三.源文件代码 1.RecData.pro #------------------------------------------------ ...

  2. 记录——python的ui界面实现

    前言 在写完程序之后想让程序看起来更加可视化一点,所以想看看在上面加个ui界面,记录下发生过的问题以及解决方法.       如果发现文章哪里有问题,欢迎指正. 为什么选择pyside2呢? 在选择库 ...

  3. WPF DataGrid 绑定DataSet数据 自动生成行号

    1.绑定数据:dataGrid1.ItemsSource = dataSet.Tables[0].DefaultView; 注意:在创建DataGrid 时可以通过AutoGenerateColumn ...

  4. WPF DataGrid 通过自定义表头模拟首行固定

    WPF DataGrid 通过自定义表头模拟首行固定 独立观察员 2021 年 9 月 25 日 最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了.问题是,UI 设计的表格是 ...

  5. 《Dotnet9》系列-开源C# WPF控件库2《Panuon.UI.Silver》强力推荐

    国内优秀的WPF开源控件库,Panuon.UI的优化版本.一个漂亮的.使用样式与附加属性的WPF UI控件库,值得向大家推荐使用与学习. 今天站长(Dotnet9,站长网址:https://dotne ...

  6. WPF DataGrid 如何将被选中行带到视野中

    WPF DataGrid 如何将被选中行带到视野中 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 在 WPF 开发中,显示表格一般使用 DataGri ...

  7. WPF DataGrid:解决排序、ScrollIntoView、刷新和焦点问题

    目录 介绍 第一种方法:记住选定的行,刷新DataGrid,再次选择行 最终方法:使用OneWay绑定,避免调用Refresh() 改进1:使ScrollIntoView()起作用 改进2:将选定的行 ...

  8. 使用绑定进行WPF DataGrid格式化的指南

    目录 介绍 WPF DataGrid结构 WPF绑定基础 使用的业务数据 将DataGrid与业务数据连接 DataGrid格式 格式化列 格式化完整行 根据显示的值格式化单元格 根据业务逻辑数据格式 ...

  9. WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载)

    WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载) WPF DataGrid 系列示例程序,由浅入深逐步介绍如何在WPF 应用程序中使用新的DataGrid 控件.本篇 ...

最新文章

  1. 如何查看一个网站是否部署了SSL证书?
  2. Tensorflow之RNN,LSTM
  3. 【深度学习】Tensorflow完成线性回归对比机器学习LinearRegression()
  4. 查看linux cpu负载均衡,关于linux内核cpu进程的负载均衡
  5. 洛阳php编程培训,洛阳PHP开发培训分享提高PHP开发效率的四个编程习惯
  6. Ubuntu已经很好用了
  7. 数字图像处理理论课件(清华大学计算机科学与技术)
  8. 计算机开机显示屏幕优化中,联想电脑一开机就出现图像设定屏幕优化中怎样才能取消...
  9. c语言实验报告函数及其应用,2020c语言实验报告函数总结心得.docx
  10. android获取手机号ip地址,手机ip查询我的地址定位(网站如何抓取用户手机号和IP地址)...
  11. Canvas绘制六边形网格
  12. 分治法:找出不合格银币
  13. Echarts使用map3D+visualMap 实现地图下钻,区域高亮状态下变高
  14. cgb2110-day13
  15. 使用ArchR分析单细胞ATAC-seq数据(第十四章)
  16. 计算机专业大创要求,“大创项目”推动计算机专业学生创新实践能力的提高
  17. 2021-2027全球与中国半导体封装基板(IC载板)市场现状及未来发展趋势
  18. JavaScript中日期Date、Math方法及使用例 驼峰命名法 网页显示时间 对数据取整 随机数 返回绝对值 四舍五入
  19. 华为畅享z和畅享20pro有什么区别
  20. 企业申请AAA企业信用等级认证的4大好处

热门文章

  1. 一句话把对方噎到无语的经典语录....
  2. PC机如何使用trunk口类型连接
  3. 操作系统(十五)——mmap
  4. 微软正式发布SQL Server 2012 RTM版本
  5. python 去读DAT文件
  6. SIFT特征提取+匹配
  7. redis搭建主从哨兵模式+分片集群部署(redis系列二)
  8. 读取界面信息以及文本分割按键精灵
  9. Deep Reinforcement Learning超简单入门项目 Pytorch实现接水果游戏AI
  10. 硬件大熊原创合集(2022/02更新)