1.Mode 绑定中数据流的方向(enum BindingMode)

目标属性指的是控件的属性

(1)TwoWay

更改源属性或目标属性时,会自动更新另一方。适用于可编辑窗体 例:TextBox

(2)OneWay

更改源属性时会自动更新目标属性。适用于隐形只读窗体 例:Label

可避免 System.Windows.Data.BindingMode.TwoWay 绑定模式的系统开销

(3)OneTime

在应用程序启动或数据上下文更改时,更新绑定目标

如果你在适合使用当前状态的快照或数据实际为静态数据的位置使用数据,则此类型的绑定适合。 如果你想使用源属性中的某个值来初始化目标属性,且提前不知道数据上下文,则此类型的绑定也有用。
这是实质上是 System.Windows.Data.BindingMode.OneWay 绑定的一种简化形式,它在源值不更改的情况下提供更好的性能。

(4)OneWayToSource

目标属性更改时,会自动更新源属性

(5)Default

使用绑定目标的默认 System.Windows.Data.Binding.Mode 值。 每个依赖属性的默认值都不同。 通常,用户可编辑的控件属性(如文本框和复选框的控件属性)默认为双向绑定,而其他大多数属性默认为单向绑定。确定依赖属性绑定在默认情况下是单向还是双向的编程方法是:使用 System.Windows.DependencyProperty.GetMetadata(System.Type)获取属性的属性元数据,然后检查 System.Windows.FrameworkPropertyMetadata.BindsTwoWayByDefault属性的布尔值。

2.UpdateSourceTrigger 绑定源更新的计时(enum UpdateSourceTrigger)

(1)Default

绑定目标属性的默认 System.Windows.Data.UpdateSourceTrigger 值。 大多数依赖属性的默认值为 System.Windows.Data.UpdateSourceTrigger.PropertyChanged,而System.Windows.Controls.TextBox.Text 属性的默认值为 System.Windows.Data.UpdateSourceTrigger.LostFocus。

(2)PropertyChanged

每当绑定目标属性发生更改时,都会更新绑定源

(3)LostFocus

每当绑定目标元素失去焦点时,都会更新绑定源

(4)Explicit

仅在调用 System.Windows.Data.BindingExpression.UpdateSource 方法时更新绑定源

            BindingExpression be = tbName.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();

  

3.Converter 获取或设置要使用的转换器

WPF使用转换器(Converter)

WPF多值绑定及多值转换(MultiBinding和IMultiValueConverter)

4.ElementName 要绑定的元素的名称

Content="{Binding ElementName=lblTitle, Path=Content}"

 

5.Path 获取或设置绑定源属性的路径

Content="{Binding ElementName=lblTitle, Path=Content}"

可以省略Path

Content="{Binding Content, ElementName=lblTitle}"

  

6.IsAsync 是否应异步获取和设置值

这篇文章的例子很好: https://www.cnblogs.com/Aimeast/archive/2011/02/24/1963359.html

处理大批量的数据时,由于耗时操作,会造成界面的假死,这时需要进行异步操作。一般我们起线程就好了,而绑定属性,只要设置了IsAsync就可以了。

(1)异步设置值

属性:

        private int status = 0;
public int Status
{
get { return status; }
set { Thread.Sleep(10000); status = value; RaisePropertyChanged("Status"); }
}

xaml:

        <TextBox Text="{Binding Status,IsAsync=True}" HorizontalAlignment="Left" Height="23" Margin="243,208,0,0" VerticalAlignment="Top" Width="120"/>
<Label Content="{Binding Status}" HorizontalAlignment="Left" Height="23" Margin="243,256,0,0" VerticalAlignment="Top" Width="120"/>

效果:

没使用IsAsync=True时,界面会假死10s,然后刷新label内容;使用后,界面不会假死,然后10s后刷新label内容

(2)异步获取值

属性:

        private int status = 0;
public int Status
{
get { Thread.Sleep(10000); return status; }
set { status = value; RaisePropertyChanged("Status"); }
}

xaml:

<Label Content="{Binding Status,IsAsync=True}"  HorizontalAlignment="Left" Height="23" Margin="243,256,0,0" VerticalAlignment="Top" Width="120"/>

效果:

因为 “控件绑定绑定的属性,值获取后控件才开始显示刷新”,所以设置异步之前Status的get完成后,Label的才显示刷新,会假死10s。

WPF绑定功能常用属性介绍的更多相关文章

  1. WPF布局控件常用属性介绍

    WPF布局控件常用属性介绍 其它 | 作者:慧都控件网 | 2011-04-06 13:41:57| 阅读 0次 有用(0) 评论(0)   概述:WPF布局控件都是派生自System.Windows ...

  2. 【转】【WPF】WPF绑定用法

    一.简介 为了后面行文顺利,在进入正文之前,我们首先对本文所涉及到的绑定知识进行简单地介绍.该节包含绑定的基本组成以及构建方式. WPF中的绑定完成了绑定源和绑定目标的联动.一个绑定常常由四部分组成: ...

  3. WPF快速入门系列(4)——深入解析WPF绑定

    一.引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能.WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信 ...

  4. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  5. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块

    这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...

  6. RelativeLayout常用属性介绍

    RelativeLayout常用属性介绍 转自: http://www.douban.com/note/97496783/ 下面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性 ...

  7. WPF中的常用布局

    一 写在开头1.1 写在开头评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好. 1.2 本文内容本文主要内容为WPF中的常用布局,大部分内容转载至https://blog.csdn.net ...

  8. Atiit 常见功能 常用功能与模块的最快速解决方案

    Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...

  9. WPF绑定的ListBox获取ListBoxItem及GoToState应用

    现公司项目中需要制作一个扇形菜单,菜单项是用ListBox重写Style实现的,其数据是绑定的.菜单的每一项都有Normal,MouseOver和Selected三种状态,这三种状态当然可以通过鼠标移 ...

随机推荐

  1. spring boot 单选按钮

    jsp代码 性别: <form:radiobutton path="xb" value="男"/>男 <form:radiobutton pa ...

  2. 剑指offer58:对称的二叉树。判断一颗二叉树是不是对称的,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的

    1 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 2 思路和方法 定义一种遍历算法,先遍历右子结点再遍历左子结点:如对称先序 ...

  3. os路径

    import os linux下 例如: 我现在在 /home/settings.py文件下 # 获取当前的绝对路径 os.path.abspath(__file__) # 获取的内容 /home/s ...

  4. 模块 time 和 datetime

    目录 时间模块time datatime time 模块 datetime 模块 时间模块time datatime time 模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(str ...

  5. pandas数据结构之DataFrame笔记

    DataFrame输出的为表的形式,由于要把输出的表格贴上来比较麻烦,在此就不在贴出相关输出结果,代码在jupyter notebook可以顺利运行代码中有相关解释用来加深理解方便记忆 import ...

  6. Python单元测试笔记

    单元测试根据级别不同可分为:单元测试.集成测试.系统测试.验收测试.回归测试 单元测试的更能特点:对代码最基本单元(函数.方法)的测试. 给予特定条件判断结果是否符合预期 相对整个程序的测试,单元测试 ...

  7. Scratch—点亮生日蜡烛

    过生日是小朋友们创作Scratch作品经常会用到的素材,今天介绍使用一些基础技能来点亮生日蜡烛的实现方法. 1.角色设计只有三种:生日蛋糕.未点燃的蜡烛.已点燃的蜡烛. 2.未点燃的蜡烛:在程序启动时 ...

  8. Vs code 下设置python tasks.json

    { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.jso ...

  9. AngularJS视图 ng-view

    AngularJS支持通过在单个页面上的多个视图的单页应用.要做到这一点AngularJS提供ng-view 和 ng-template指令,以及 $routeProvider 服务. ng-view ...

  10. JS OOP 概述

    JS面向对象,大致内容 1.面向对象的基础 2.深入认识JS的函数 3.JS类的实现 4JS中共有成员,私有成员和静态成员 5.JS的反射 6.JS的继承 7.JS实现抽象类 8.JS事件设计模式 9 ...