WPF 自带Datagrid编辑后无法更新数据源的问题

最近项目中遇到的问题,datagrid编辑后无法立刻与后台同步,只有失去焦点时才更新,在网上找了找,这个方法可以用用:

转自:http://blog.csdn.net/lianchangshuai/article/details/7787344

解决办法:

在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下

<DataGrid Grid.Row="1" Height="274" HorizontalAlignment="Left" Margin="12,10,0,0" Name="dataGrid2" VerticalAlignment="Top" Width="679" RowEditEnding="dataGrid2_RowEditEnding" AutoGenerateColumns="False">             <DataGrid.Columns>                 <DataGridTextColumn Header="姓名" Width="*" Binding="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>                 <DataGridTextColumn Header="地址" Width="*" Binding="{Binding Addr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>             </DataGrid.Columns>         </DataGrid> 这样当即时编辑Datagrid单元格数据时会立马更新数据源的值。

UpdateSourceTrigger 枚举详细说明见 http://msdn.microsoft.com/zh-cn/library/system.windows.data.updatesourcetrigger(v=vs.95).aspx

引用网上找的内容:
WPF通过Binding实现控件和ViewModule(Module)数据源的双向同步,如果想在数据源中的数据变更时及时通知控件,需要类实现INotifypropertychanged接口,如果数据源是个集合,在集合中的数据变更时也想刷新控件,则该集合需要是Observablecollection。

如果用户更改前台控件的值,什么时候通知后台的数据源呢? 这个就是UpdateSourceTrigger这枚举类型来决定的。 关于此枚举的具体类型,可参照

http://msdn.microsoft.com/zh-cn/library/system.windows.data.binding.updatesourcetrigger.aspx

WPF 自带Datagrid编辑后无法更新数据源的问题

时间: 2024-10-16 15:03:29

WPF 自带Datagrid编辑后无法更新数据源的问题的相关文章

DataGridView编辑后立即更新到数据库的两种方法

DataGridView控件是微软预先写好的一个显示数据的控件,功能非常强大,可以显示来自数据库表的数据和XML等其他来源的数据.最近在做一个迷你超市管理系统,要大量用到这个控件.所以花时间好好研究了下. 这是迷你超市管理系的库存数据DataGridView,用户一定会想如果能直接在DGV中修改数据就好了. 是的,这是一个很好的想法,这个功能微软早就帮我们想到了,现在可以使两种方法加以实现.下面就来介绍一下他们. 第一张方法:基于DataAdapter对象创建一个CommandBulider,用

Dev GridControl数据修改后实时更新数据源

  1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexC

Dev GridControl数据修改后实时更新数据源(转)

1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexCha

WPF:设置DataGrid中DataGridColumn列的普通样式和编辑样式

WPF:设置DataGrid中DataGridColumn列的普通样式和编辑样式 时间:2012-02-01 20:28来源:博客园 作者:刘圆圆 点击:1570次 0:DataGridColumn类型的继承树 DataGridColumn的派生类: 一般情况下DataGridBoundColumn和DataGridComboBoxColumn足以满足多数列的样式,如果需要自定义列样式,则可以使用DataGridTemplateColumn类型. 在设置列编辑样式之前,我们先创建一个简单的Dat

[WPF] C1ComboBox的非编辑状态

一.前言 先看看WPF自带的 ComboBox 在非编辑状态,自定义 ItemTemplate 的情况下,效果如下图所示: 其当前选中的项(红框内)与自定义的 ItemTemplate 一样: 但是 C1ComboBox 的非编辑状态(IsEditable="False"): 总感觉它的非编辑状态并没有完成,虽然数字和英文无法输入,但在红框内依旧可以输入中文文本(QQ拼音输入法的中文输入状态):并且在非编辑状态下并非像 Combobox 的非编辑状态可以显示自定义的 ItemTempl

MFC 编辑框内容更新方法以及滚动条设置

内容更新,之前已经说过一种就是调用UpdateData(FALSE);来实现.但是这种方法是对整个编辑框进行更新. 通过单个编辑内容设置更新内容.这种是调用SetDlgItemText(IDC_EDIT,m_Edit1_Value);来实现. 滚动条的设置,首先是要先设置一下编辑框属性,使能多行滚动,以及其滚动方式.之后申请一个编辑框的控制变量类型. 在事件处理时调用函数:m_Edit1_path_Ctl.LineScroll(m_Edit1_path_Ctl.GetLineCount());

WPF中实现先登录后启动主程序的方法

[转载] http://blog.csdn.net/swarb/article/details/17301167 WPF中实现先登录后启动主程序的方法 我觉得先登录后启动应用主程序是一个很经典的问题,基本上如果要写一个应用程序都会用到这个的小环节.我在这个问题上挣扎了大半天才找到解决方案,我的实现方法我觉得有点不正宗,如果有哪位高手知道更好的方法欢迎留言指导!! 首先来说一下传统C#在WinForm中的实现方法,基本上是在Main函数中根据第一个启动窗口的DialogResult来判断是否实例第

chrome浏览器更换favicon.ico后不更新缓存解决方案

chrome浏览器更换favicon.ico后不更新缓存 1.按ctrl+F5强制刷新或网页上右键重新载入.2.再不行就删除缓存.3.但这样太讨厌了,还有个小窍门屡试不爽,那就是直接在浏览器地址栏访问favicon文件.4.如果访问还是原先的ico文件,在浏览图片时刷新一下,再回到网站看一下,已经解决了,毕竟谁都不愿意为这个问题去清缓存和cookies什么的.

datagrid 编辑

spark:DataGrid编辑状态进入需要在选中一行高亮状态之后,再次点击该单元格,这样,相信非常符合开发人员的控制手法及大众使用习惯,这,是一点非常好的改良. 同时,它取缔了itemEditEnd以及itemFocusOut这样的事件,采用下面四个事件来控制Grid Editor的编辑状态: gridItemEditorSessionCancel="No default"gridItemEditorSessionSave="No default" gridIte