当前位置: 首页 > article >正文

01.5.Binding

参考JusterZhu视频和文档
在这里插入图片描述

<TextBox FontSize="20" Width="200">
    <TextBox.Text>
        <Binding Path="GivenName" Delay="2000" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
            <Binding.ValidationRules>
                <local:AgeRangeRule></local:AgeRangeRule>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
public enum UpdateSourceTrigger
{
    Default,
    PropertyChanged,
    LostFocus,
    Explicit
}

这是一个名为UpdateSourceTrigger的枚举类型,通常在WPF (Windows Presentation Foundation) 或其他 XAML (Extensible Application Markup Language) 基础的应用程序中使用。这个枚举用于指定数据绑定更新源(例如文本框中的数据)何时应该将其更改传递到数据绑定的目标(例如数据模型中的属性)。下面是枚举中各个成员的含义:

  1. Default:这表示数据绑定的更新源触发器将使用默认的行为。默认行为通常是取决于绑定的具体上下文,但通常等同于PropertyChanged

  2. PropertyChanged:当数据绑定的更新源的值更改时,立即将该更改传递到数据绑定的目标。这意味着每次源属性更改时都会触发数据绑定。

  3. LostFocus:数据绑定的更新源在失去焦点时(通常是在用户在界面元素(如文本框)中输入数据后移出该元素)才将更改传递到数据绑定的目标。这允许用户在输入数据时进行编辑,并只在离开输入字段时触发绑定。

  4. Explicit:数据绑定的更新源需要显式的触发才会将更改传递到数据绑定的目标。这通常需要编程方式触发数据绑定更新,而不是自动或基于用户输入触发。

这些不同的更新源触发器允许开发人员根据应用程序的需要来控制数据绑定的行为,以确保数据在界面元素和数据模型之间同步时满足特定的需求。

默认情况下,如果不明确指定数据绑定的更新源触发器(UpdateSourceTrigger),那么在大多数情况下,WPF 和其他 XAML 框架将使用Default作为默认的更新源触发器。

在许多常见情况下,DefaultPropertyChanged等效,这意味着当数据绑定的更新源的值更改时,将立即将更改传递到数据绑定的目标。因此,默认情况下,数据绑定通常会实时地反映源属性的更改。

需要注意的是,实际的默认行为可能会根据具体的XAML框架、控件和绑定上下文而有所不同。因此,为了明确控制数据绑定的行为,有时建议显式指定所需的更新源触发器。

Binding - Command

1.带参命令绑定,并返回当前整个Employee对象
<Button Command="{Binding GetEmployeeCmd}" CommandParameter="{Binding}" />
2.带参命令绑定,并返回挡墙对象中的某个属性。例:Employee对象中的Name属性
<Button Command={Binding GetEmployeeCmd}” CommandParameter={Binding Path=Name}" />

3.当button作为ItemControl类型控件的子项时需绑定命令,会用到RelativeSource关键字辅助在资源中查找命令。
<Button 
Command={Binding Path=DataContext.GetEmployeeCmd, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ListBox}, Mode=FindAncestor}}”   CommandParameter={Binding}/>

http://www.kler.cn/a/103902.html

相关文章:

  • windows添加定时任务命令
  • Swoole 4.8版本的安装
  • C# 通过IP获取Mac地址(ARP)
  • 短视频矩阵系统软件源码
  • MySQL---表的增查改删(CRUD进阶)
  • 基于PHP的线上购物商城,MySQL数据库,PHPstudy,原生PHP,前台用户+后台管理,完美运行,有一万五千字论文。
  • UE4 材质实操记录
  • 日志报错 fork:Cannot allocate memory
  • composer安装thinkphp6报错
  • uni-app:解决异步请求返回值问题
  • PostgreSQL 认证方式
  • C++ 流程控制(分支、循环、跳转)
  • vue3移动端嵌入pdf的两种办法
  • 【疯狂Java】数组
  • ESP32网络开发实例-将 ESP32 连接到 EMQX Cloud MQTT Broker
  • 关系数据库-postgresql-基础
  • MR混合现实情景实训教学系统在旅游管理专业中的应用
  • JVM的几个面试重点
  • 爬虫-获取数据bs4
  • AI的Prompt是什么