wpf datagrid 实现双向绑定

愛在花開的季節  金牌会员 | 2024-8-22 07:44:57 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 667|帖子 667|积分 2001

前台
  1. <DataGrid
  2.     AutoGenerateColumns="False"
  3.     Background="White"
  4.     CanUserAddRows="True"
  5.     Grid.Row="1"
  6.     RowEditEnding="DataGrid_OnRowEditEnding"
  7.     RowHeight="60"
  8.     SelectionUnit="CellOrRowHeader"
  9.     x:Name="DataGrid">
  10. <!-- Mode=TwoWay, UpdateSourceTrigger=PropertyChanged  这两个设置很重要,没有的话无法实现双向绑定-->
  11.     <DataGrid.Columns>
  12.         <DataGridTextColumn
  13.             Binding="{Binding ZhuJieNeiRong, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  14.             Header="注解内容"
  15.             Width="*">
  16.             <DataGridTextColumn.ElementStyle>
  17.                 <Style TargetType="TextBlock">
  18.                     <Setter Property="VerticalAlignment" Value="Center" />
  19.                 </Style>
  20.             </DataGridTextColumn.ElementStyle>
  21. <!-- -->
  22. <!-- 这里的功能是 如果设定了行高,加上这个样式 编辑表格时 内容是一直垂直居中-->
  23.             <DataGridTextColumn.EditingElementStyle>
  24.                 <Style TargetType="TextBox">
  25.                     <Setter Property="VerticalContentAlignment" Value="Center" />
  26.                 </Style>
  27.             </DataGridTextColumn.EditingElementStyle>
  28.         </DataGridTextColumn>
  29.     </DataGrid.Columns>
  30. </DataGrid>
复制代码
背景
  1. public static ObservableCollection<Zjwz> _gridZhuJieList = new ObservableCollection<Zjwz>();
  2. private void win_OnLoaded(object sender, RoutedEventArgs e)
  3. {
  4.     DataGrid.ItemsSource = _gridZhuJieList;
  5. }
复制代码
数据对象
  1. public class Zjwz : NotificationObject
  2. {
  3.     private string _zhuJieNeiRong;
  4.     public string ZhuJieNeiRong
  5.     {
  6.         get { return _zhuJieNeiRong; }
  7.         set
  8.         {
  9.             _zhuJieNeiRong = value;
  10.             RaisePropertyChanged();
  11.         }
  12.     }
  13. }
复制代码
数据对象须要的类
  1. using System.Collections.Generic;
  2. using System.ComponentModel;
  3. namespace CommonSql
  4. {
  5.     public class NotificationObject : INotifyPropertyChanged
  6.     {
  7.         public event PropertyChangedEventHandler PropertyChanged;
  8.         protected virtual void RaisePropertyChanged( string propertyName = null)
  9.         {
  10.             if (PropertyChanged != null)
  11.                 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
  12.         }
  13.         
  14.         protected virtual bool SetProperty<T>(ref T member, T value,  string propertyName = null)
  15.         {
  16.             if (EqualityComparer<T>.Default.Equals(member, value))
  17.             {
  18.                 return false;
  19.             }
  20.             member = value;
  21.             RaisePropertyChanged(propertyName);
  22.             return true;
  23.         }
  24.     }
  25. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表