当前位置: 首页 > news >正文

wpf datagrid 实现双向绑定

前台

<DataGridAutoGenerateColumns="False"Background="White"CanUserAddRows="True"Grid.Row="1"RowEditEnding="DataGrid_OnRowEditEnding"RowHeight="60"SelectionUnit="CellOrRowHeader"x:Name="DataGrid"><!-- Mode=TwoWay, UpdateSourceTrigger=PropertyChanged  这两个设置很重要,没有的话无法实现双向绑定--><DataGrid.Columns><DataGridTextColumnBinding="{Binding ZhuJieNeiRong, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"Header="注解内容"Width="*"><DataGridTextColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="VerticalAlignment" Value="Center" /></Style></DataGridTextColumn.ElementStyle><!-- -->
<!-- 这里的功能是 如果设定了行高,加上这个样式 编辑表格时 内容是一直垂直居中--><DataGridTextColumn.EditingElementStyle><Style TargetType="TextBox"><Setter Property="VerticalContentAlignment" Value="Center" /></Style></DataGridTextColumn.EditingElementStyle></DataGridTextColumn></DataGrid.Columns></DataGrid>

后台

public static ObservableCollection<Zjwz> _gridZhuJieList = new ObservableCollection<Zjwz>();private void win_OnLoaded(object sender, RoutedEventArgs e)
{DataGrid.ItemsSource = _gridZhuJieList;
}

数据对象

public class Zjwz : NotificationObject
{private string _zhuJieNeiRong;public string ZhuJieNeiRong{get { return _zhuJieNeiRong; }set{_zhuJieNeiRong = value;RaisePropertyChanged();}}
}

数据对象需要的类

using System.Collections.Generic;
using System.ComponentModel;namespace CommonSql
{public class NotificationObject : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;protected virtual void RaisePropertyChanged( string propertyName = null){if (PropertyChanged != null)PropertyChanged(this, new PropertyChangedEventArgs(propertyName));}protected virtual bool SetProperty<T>(ref T member, T value,  string propertyName = null){if (EqualityComparer<T>.Default.Equals(member, value)){return false;}member = value;RaisePropertyChanged(propertyName);return true;}}
}
http://www.lryc.cn/news/429422.html

相关文章:

  • 使用循环在el-select下拉框中循环出-3至50
  • 全球海事航行通告解析辅助决策系统
  • Spring 解决bean的循环依赖
  • 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main
  • seq2seq编码器encoder和解码器decoder详解
  • 前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆)
  • Python 将单词拆分为单个字母组成的列表对象
  • 欧洲 摩纳哥税务知识
  • 域控制器的四大支柱分别是车载以太网、自适应Autosar
  • 写给大数据开发:如何优化临时数据查询流程
  • 【MongoDB】Java连接MongoDB
  • nginx支持的不同事件驱动模型
  • C++ TinyWebServer项目总结(7. Linux服务器程序规范)
  • 基于STM32单片机设计的秒表时钟计时器仿真系统——程序源码proteus仿真图设计文档演示视频等(文末工程资料下载)
  • 人才流失预测项目
  • BUG——imx6u开发_结构体导致的死机问题(未解决)
  • 问答:什么是对称密钥、非对称密钥,http怎样变成https的?
  • 虚拟滚动列表组件ReVirtualList
  • 稳定、耐用、美观 一探究竟六角头螺钉螺栓如何选择
  • 数据库Mybatis基础操作
  • 人物形象设计:塑造独特角色的指南
  • 网络安全-安全策略初认识
  • python import相对导入与绝对导入
  • 深入理解 Go 语言原子内存操作
  • PostgreSQL几个扩展可以帮助实现数据的分词和快速查询
  • C盘满了怎么办?教你清理C盘的20个大招,值得收藏备用
  • 原生js实现下滑到当前模块进度条填充
  • 显示弹出式窗口的方法
  • Java-什么是缓存线程池?
  • esbuild中的Binary Loader:处理二进制文件