在Silverlight/WPF的BindingExpression中,我们可以对一个Bind定义UpdateSourceTrigger属性,但是在Silverlight里只提供了显式更新和默认方式(即失去焦点时触发),

所以如果我们需要TextBox在输入时即进行数据源的更新,我们需要进一步处理一下,那么如果你熟悉这个功能的话,你在网上能很快搜索出来类似下面的Code:

  TextBox txt = sender as TextBox;
  var bindingExpression = txt.GetBindingExpression(TextBox.TextProperty);
  if (bindingExpression != null)
  {
    bindingExpression.UpdateSource();
  }

那么本篇我仿照前一篇Grid扩展附加属性的做法,实现这个功能,首先声明UpdateExplictProperty

  public static bool GetUpdateExplict(DependencyObject obj)
  {
    return (bool)obj.GetValue(UpdateExplictProperty);
  }
   public static void SetUpdateExplict(DependencyObject obj, bool value)
   {
    obj.SetValue(UpdateExplictProperty, value);
   }
    public static readonly DependencyProperty UpdateExplictProperty =
    DependencyProperty.RegisterAttached("UpdateExplict", typeof(bool), typeof(TextBoxExtension), new PropertyMetadata(false, UpdateOnPropertyChangedPropertyCallback));

在UpdateOnPropertyChangedPropertyCallback中对TextBox的TextChanged进行处理,这里的处理逻辑与开头的代码是一致的.

最终我们在使用这个附加属性时,如下的XAML就可以:

   <TextBox Text="{Binding FirstName,Mode=TwoWay}" UpdateTextBox:TextBoxExtension.UpdateExplict="True"></TextBox>

其实对于这个功能,也可以使用Behavior去封装,近期发的两篇文章都是用附加属性来解决问题的,实际也在强调附加属性在Silverlight项目应用的意义所在。

下载代码:TextBoxExtension.rar

转载于:https://www.cnblogs.com/626498301/archive/2012/07/27/2611802.html

Silverlight:UpdateSourceTrigger属性的应用相关推荐

  1. WPF教程UpdateSourceTrigger属性

    在前面的文章我们看到,TextBox中的变化并不是立即传递到源,而是在TextBox失去焦点后,源才更新.这种表现由绑定中的UpdateSourceTrigger属性来控制.它的默认值是Default ...

  2. WPF Silverlight Visibility 属性的绑定

    Silverlight 控件的Visibility属性不能直接用true或者false绑定,而是要通过一个Converter来实现: VisibilityConverter类代码: [c-sharp] ...

  3. Silverlight实例教程 - Validation用户提交数据验证捕获

    在以往的Validation系列中,介绍了四种Silverlight验证机制: 基本异常验证机制: DataAnnotation验证机制: IDataErrorInfo客户端同步验证机制: INoti ...

  4. 分享Silverlight/WPF/Windows Phone一周学习导读(07月18日-07月24日)

    上周,微软推出Silverlight新版官方网站,新网站综合旧版网站内容,并增加更多Silverlight学习资源以及案例展示,Silverlight官网是学习Silverlight开发技术的主要资源 ...

  5. 如何解决Silverlight InitializeError #2103 - Invalid or malformed application: Check manifest

    重构一个Silverlight应用,并修改对应的所有namespace,启动调试客户端出现错误信息如下: InitializeError #2103 - Invalid or malformed ap ...

  6. Silverlight 2 Customized Control 开发

    Customized Control 和 User Control 相信大家比较熟悉使用Silverlight的User Control,在VS2008的Silverlight插件中,可以通过添加新项 ...

  7. 【转】体验 Silverlight 5 3D开发之环境搭配篇

    体验 Silverlight 5 3D开发之环境搭配篇 时间:2012-10-08 20:14来源:博客园作者:吉心 点击:180次 项目组现在要做一个三维的项目,我们几个童鞋,讨论了N久,最后决定基 ...

  8. 分享Silverlight/WPF/Windows Phone一周学习导读(1月9日-1月16日)

    分享Silverlight/WPF/Windows Phone上周学习导读. 本周Silverlight学习资源更新: Prism 4学习笔记之Module Jason Li WPF/Silverli ...

  9. 分享Silverlight/WPF/Windows Phone一周学习导读(4月4日-4月9日)

    期待已久的Silverlight 5即将到来,上周不少关于MIX11的话题,其中值得关注的有以下几篇: MIX11: Silverlight 5,Windows Phone,IE9,HTML5及直播预 ...

最新文章

  1. 马斯克说到做到!特斯拉牌呼吸机“交货”,用Model 3零部件打造;网友:我滴神啊...
  2. yl335b分拣站单元流程图_选择单元化物流容器的必要性
  3. 下列哪个不是目前python里的内置模块-不吹不擂,你想要的Python面试都在这里了【315+道题】...
  4. 重置outlook 2010
  5. InfoPath开发
  6. cutycapt(php截图工具)
  7. 46 关于Linux的I/O重定向
  8. 休眠事实:访存策略的重要性
  9. 真正能成功的人,不见得是最聪明的,也小见得是学历最高的,而是最能面对问题、锲而不舍的人。...
  10. 华为手机获取状态栏高度是错误的_你的华为手机状态栏有HD图标吗?这又代表着什么?看完你就懂了...
  11. 带你认识Flink容错机制的两大方面:作业执行和守护进程
  12. HDU 3785 寻找大富翁
  13. 小学三年级下计算机工作计划,小学三年级第二学期班主任工作计划
  14. Linux iptables防火墙详解(一)——iptables基础知识
  15. iphone编程,使用代码结束程序
  16. Illustrator 教程,如何在 Illustrator 中使用钢笔工具创建作品?
  17. jenkins linux虚拟机,Jenkins实战演练之Linux节点任务配置
  18. 情感极性:关于中文情感分类的知识
  19. php 生成小程序码
  20. [matlab实践应用]matlab实现读取xls表格并三次样条插值拟合压杆稳定实验数据

热门文章

  1. 鸿蒙开发者大会邀请函,将召开史上最大规模开发者大会,华为抓紧调试“鸿蒙”系统...
  2. 求有向图中两点最短距离java_Java 迪杰斯特拉算法实现查找最短距离
  3. mysql glibc包很大_linux 安装 mysql 的 glibc 包
  4. 计算机大学英语值最高的3项,计算机等级考试一级B上机试题:Windows字处理
  5. matlab ifft频率分辨率,[FFT] matlab中关于FFT的使用(理解频率分辨率、补零问题)
  6. 序列化数据导入mysql_[导入]对象序列化后保存到数据库
  7. 机器学习常见算法优缺点汇总
  8. python遥感影像分类代码_Python 实现遥感影像波段组合的示例代码
  9. mysql执行语句_MySQL查看实时执行的SQL语句
  10. matlab逻辑电路图,基于.matlab的数字逻辑电路仿真.doc