WPF DataGrid 绑定数据及时更新的处理

原文:WPF DataGrid 绑定数据及时更新的处理

默认情况下datagrid 绑定数据源后,在界面编辑某一列后,数据不会及时更新到内存对象中。如在同一行上有一个命令对来获取 当前选中行(内存对象)发现,数据未更新过来。

解决办法:

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


  1. <DataGrid Name="dgProducts" IsReadOnly="False" CanUserAddRows="False" Grid.Row="1"
  2. CanUserDeleteRows="False" AutoGenerateColumns="False" Hyperlink.Click="dgProducts_Click">
  3. <DataGrid.Columns>
  4. <DataGridTextColumn Header="产品编码" IsReadOnly="True" Binding="{Binding Path=ProductNO, Mode=TwoWay}"/>
  5. <DataGridTextColumn Header="产品名称" IsReadOnly="True" Width="150" Binding="{Binding Path=ProductName, Mode=TwoWay}"/>
  6. <DataGridTextColumn Header="规格型号" IsReadOnly="True" Width="150" Binding="{Binding Path=ProductSpec, Mode=TwoWay}"/>
  7. <DataGridTextColumn Header="生产数量" IsReadOnly="False" Binding="{Binding Path=MakeNums, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
  8. <DataGridHyperlinkColumn Header="操作" Width="*" Binding="{Binding Path=PCmd}" />
  9. </DataGrid.Columns>
  10. </DataGrid>

这样当即时编辑Datagrid单元格数据时会立马更新数据源的值。

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

原文地址:https://www.cnblogs.com/lonelyxmas/p/12075396.html

时间: 2024-11-05 17:25:51

WPF DataGrid 绑定数据及时更新的处理的相关文章

WPF DataGrid绑定一个组合列

WPF DataGrid绑定一个组合列 前台: <Page.Resources>        <local:InfoConverter x:Key="converter"></local:InfoConverter>    </Page.Resources> <DataGridTextColumn>                        <DataGridTextColumn.Binding>      

WPF dataGrid 绑定ComboBox

WPF dataGrid绑定ComboBox Wpf中dataGrid中的某列是comboBox解决这个问题费了不少时间,不废话了直接上代码 xaml 代码 <DataGridTemplateColumn Header="组名"> <DataGridTemplateColumn.CellTempLate> <DataTemplate> <ComboBox SelectedValue="{Binding Path=Name}"

WPF DataGrid绑定及列居中

基本的数据绑定 把集合的字段(属性)绑定在DataGrid的Binding属性就能将数据绑定列表 1 public class CashItem { 2 public int Value { get; set; } 3 public int Count { get; set; } 4 public int Amount { get { return Value * Count; } } 5 } 1 var items = new List<CashItem>() { 2 new CashIte

WPF DataGrid绑定到数据源的方法

1 string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["str"].ConnectionString; 2 SqlConnection con = new SqlConnection(conStr); 3 SqlCommand command = new SqlCommand(); 4 command.CommandText = "select * from test&quo

easyui datagrid 绑定json对象属性的属性

今天用easyui 的datagrid绑定数据时,后台提供的数据是实体类类型的,其中有一个实体类A的属性b是另一个实体类B类型的,而前台需要显示b的属性c,这下就悲剧了,前台没法直接绑定了,后来脑筋一转,想到了datagrid的列属性formatter,formatter提供了row,这样的话我们在formatter里面指定一下不就可以了吗 于是~ function dgDevice_datagrid() { $('#dgDevice').datagrid({ url: 'DeviceList.

WPF Datagrid 动态生成列 并绑定数据

原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性 WPF 动态生成对象属性 (dynamic) ObservableCollection<NameList> listName = new ObservableCollection<NameList>(); privat

WPF DataGrid 双击行 获得绑定数据

原文:WPF DataGrid 双击行 获得绑定数据 1)增加事件 2)增加对象获取 1)事件代码 Datagrid 增加事件 MouseDoubleClick="dataGrid_MouseDoubleClick" private void dataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { DataGrid datagrid = sender as DataG

WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)

原文:WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件) 因为项目需要 要实现这个~ 怎么实现画红框内容部分 田字格和上面Textbox 属于一个自定义控件  大致功能是获得一个字符串 和一组颜色值 最后田字格会显示不同颜色 这篇主要讲 DataGridTemplateColumn 并实现重写Datatemplate 重点注释 单独列出来了 LS 是列数据对象集合 listName是行数据对象集合 var Item = new FrameworkElemen

WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据

原文:WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据 功能阐述 就上面那图片 刚开始 考虑使用 RowHeaderTemplate 来实现  发现总绑定不上数据  上官网查了一下 不支持上下文绑定  fffffffffffff 只能考虑样式了  经验不足 经验不足~ 直接上前后台源码了 XAML <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"