wpf第三方空间telerik GridViewDataColumn的DataMemberBinding的UpdateSourceTrigger不触发

问题描述:
在DataMemberBinding中直接绑定数据,必须回车才会触发属性变动
在这里插入图片描述

原理

当用数据填充RadGridView 时,可以使用两种逻辑类型的列 :绑定和未绑定。

  • GridViewDataColumn,绑定列,表示来自RadGridView 的ItemsSource的数据,类型为GridViewDataColumn,设置了DataMemberBinding属性,支持排序、过滤、分组、聚合。RadGridview控件会自动未单元格的视图和编辑模式生成控件。例:对于字符串类型,查看模式默认控件TextBlock,编辑模式默认控件为TextBox
  • CellTemplate, 未绑定列,用于显示自定义内容,通过GridViewColumn.CellTemplate实现,可与GridViewDataColumn同时设置
  • CellEditTemplate : 获取或设置处于编辑模式的单元格的数据模板。

问题推断

现象:使用GridViewDataColumn时,列的 DataMemberBinding的UpdateSourceTrigger属性被忽略
原因:使用RadGridView 时,控件为了提高性能,避免每次击键都会发生验证和提交操作,会自动将"Binding.UpdateSourceTrigger"属性更改为"Explicit",按Enter键或者再次点击GridView控件才提交数据。
解决方案
可以通过使用列的CellEditTemplate属性并设置应用于编辑模式下的元素的绑定的UpdateSourceTrigger(例如 GridViewDataColumn 的编辑元素是一个 TextBox)来克服这个问题。

<telerik:GridViewDataColumn DataMemberBinding="{Binding Name}"> 
    <telerik:GridViewDataColumn.CellEditTemplate> 
        <DataTemplate> 
            <TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" /> 
        </DataTemplate> 
    </telerik:GridViewDataColumn.CellEditTemplate> 
</telerik:GridViewDataColumn> 

触发过程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值