首页 > 其他分享 >WPF 绑定binding都有哪些事件

WPF 绑定binding都有哪些事件

时间:2023-12-08 10:12:42浏览次数:38  
标签:更改 绑定 binding 目标 事件 WPF 数据 属性

在WPF中,源属性(Source Property)指的是提供数据的属性,通常是数据模型或者其他控件的属性,而目标属性(Target Property)则是数据绑定的目标,通常是绑定到控件的属性,例如TextBlock的Text属性。数据绑定将源属性的值自动更新到目标属性中。  

主要包含以下几个事件:

1. UpdateSourceTrigger:用于控制数据绑定如何更新源数据的事件

  • PropertyChanged:每当目标属性的值更改时,将立即更新源属性。
  • LostFocus:当目标元素失去焦点时,更新源属性。
  • Explicit:只有在调用BindingExpression.UpdateSource方法时才会更新源属性。
  • Default:与绑定目标和属性的数据类型有关,通常是LostFocus或PropertyChanged事件。
  • Explicit和LostFocus是最常见的UpdateSourceTrigger事件,而PropertyChanged是最常用的默认事件。

2. NotifyOnTargetUpdated:指定当绑定目标发生更改时是否引发TargetUpdated事件。

  • 如果将此属性设置为true,则当目标属性更改时,将在绑定源上引发TargetUpdated事件(可在该事件中通知绑定源进行相应的更改)。
  • 需要注意的是,如果在绑定中使用了Mode属性,并且Mode属性的值为TwoWay,则NotifyOnTargetUpdated属性将被忽略。这是因为在TwoWay模式下,更改源或目标都会引发另一个方向上的更新。

3. NotifyOnSourceUpdated:指定当绑定源发生更改时是否引发SourceUpdated事件。

  • 如果将此属性设置为true,则当源属性更改时,将在绑定目标上引发SourceUpdated事件(可在该事件中通知绑定目标进行相应的更改)。
  • 需要注意的是,如果在绑定中使用了Mode属性,并且Mode属性的值为TwoWay,则NotifyOnSourceUpdated和属性将被忽略。这是因为在TwoWay模式下,更改源或目标都会引发另一个方向上的更新。

4. ValidatesOnDataErrors:是一个可选的事件,它允许开发人员在数据绑定时验证数据,是用于指定是否启用数据验证错误。

  • 当设置了该事件时,WPF会在数据源中实现IDataErrorInfo接口的类中的Error属性发生更改时,自动调用该事件。开发人员可以使用该事件来检测数据绑定中的错误,并采取适当的措施,例如禁用按钮或显示错误消息。如果开发人员不设置ValidatesOnDataErrors事件,则WPF将不会在数据绑定中自动执行数据验证。如何利用 IDataErrorInfo 实现数据校验 - LXLR - 博客园 (cnblogs.com)
  • 当数据验证失败时,绑定会将错误信息存储在Binding对象的Validation.Errors属性中。但是,这些错误信息不会自动显示在UI元素中,需要使用NotifyOnValidationError属性来实现。

5. NotifyOnValidationError:用于指定当数据验证失败时是否触发属性更改事件。

  • 如果设置为True,则当数据验证失败时,属性更改事件将被触发,这意味着可以在代码中捕获和处理该事件。如果设置为False,则属性更改事件将不会在数据验证失败时触发。
  • 当NotifyOnValidationError属性设置为True时,如果绑定数据时发生验证错误,Binding会引发一个Validation.Error事件,该事件可以被UI元素捕获并显示错误信息。
 

标签:更改,绑定,binding,目标,事件,WPF,数据,属性
From: https://www.cnblogs.com/LXLR/p/17883561.html

相关文章

  • wpf 颜色转换常用方法
    设置颜色:Colorcolor=Color.FromArgb(透明度,red数字,green数字,blue数字);//这四个数字范围都是(0-255)Colorcolor=Color.FromRgb(red数字,green数字,blue数字);//默认透明度为255;button.BackGround=newSolidColorBrush(Colors.AliceBlue);String转换成Color:Color......
  • 可调用对象包装器和绑定器
    文章参考:爱编程的大丙(subingwen.cn)1.可调用对象一组执行任务的语句都可以视作一个函数、一个可调用对象。C++中提供了可调用对象的概念,其应用相当广泛,例如在处理一些回调函数、触发函数时就会用到。可调用对象有如下几种类型:函数指针:intadd(inta,intb){ret......
  • WPF控件—DataGrid(1)
    DataGrid:表示用于在可自定义的网格中显示数据的控件。命名空间:System.Windows.Controls属性:SelectionMode:值为“Extended”和“Single”,分别表示可选取多行和单行。SelectionUnit:值为:“FullRow”、"Cell"、"CellOrRowHeader",该值分别指示是否可以在 DataGrid 中选择行、单元......
  • Binding failed for port xxxxxx
    nova-compute.log2040-13-3220:02:33.4517ERRORnova.compute.manager[Nonereq-b844f0bb-e907-4c17-807f-3f418be83679207fdd48eb414c78bdbc9b6a55362dc59252305d9c2f46bc882c15d412d25911--defaultdefault]Instancefailednetworksetupafter1attempt(s):n......
  • 基于WPF的 自动化设备数字看板
    技术要点:XAML的UI编程;数据绑定(事件驱动→数据驱动);自定义组件;MVVM分层架构;liveChart等第三方组件;Meter.xaml<UserControlx:Class="DashBoard.Components.Meter"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x=&q......
  • WPF应用框架中工作流模块的介绍
    在前面的随笔,我对我们开发的审批工作流做了不少的介绍,其中有包括WInform的、Vue+Element、BootstrapAsp.net的,在各个框架上,我们都尽量争取界面能够一致化,以便客户能够在不同的前端上有相同的用户体验,并结合不同的前端特点,做了一些优化处理,本篇随笔对WPF应用框架中工作流模块进行......
  • WPF行为
    在WPF(WindowsPresentationFoundation)中,行为被用来封装一些通用的界面功能在WPF(WindowsPresentationFoundation)中,行为被用来封装一些通用的界面功能,这样可以提高代码的重用性和开发效率。行为模型虽然不是WPF的核心部分,但它仍然是一个强大的工具,能够简化UI界面XAML代码的复杂性......
  • WPF自定义路由事件
    声明与封装创建一个继承ContentControl的类,因为封装需要使用AddHandler和RemoveHandlerRegisterRoutedEvent的参数RoutingStrategy传入RoutingStrategy.Bubble为冒泡事件,传入RoutingStrategy.Tunnel为隧道事件申明公开的eventRoutedEventHandler封装RoutedEvent///用于路由......
  • WPF触发器(Triggers)介绍
    WindowsPresentationFoundation(WPF)提供了一个丰富和灵活的图形渲染框架,触发器(Triggers)是其中一个重要的功能。触发器能够用来控制或改变UI元素的属性、样式、甚至行为。在这篇博客文章中,我们将详细介绍WPF中触发器的种类、用法,并通过一些实际例子进行讲解。1.触发器的种类在W......
  • Tekton Trigger TriggerBindings 基础
    TriggerBindings概述TriggerBinding的功能主要用于将Event中特定属性的值传递给TriggerTemplate上的参数从而完成其resourcetemplates中模板资源的实例化。注意:Trigger使用参数名称将TriggerBinding参数与TriggerTemplate参数匹配。为了传递信息,绑定中使用的参数名称必须与......