WPF数据绑定 1

2 篇文章 0 订阅
1、数据绑定:关联数据源(集合、对象、控件等)和目标(一般是界面的控件)。
2、模型:1).目标对象(e g.控件)、2).目标属性(e g.控件属性)、3).数据源对象(e g.类)、4).数据源属性(e g.属性)、5).绑定对象
3、绑定的目标属性一定是依赖属性,但数据源属性可以是普通或者依赖属性(一定是属性,普通字段不行的!)。
4、代码绑定        
        Binding binding = new  Binding("Name");
        binding.Source = class1;
        Controll.SetBinding  (Conroll.DependencyPropertyName,binding);
 或者 BindingOperation.SetBinding(controll,conroll.DependencyPropertyName,binding);

5、数据绑定的方向:1).OneWay:数据源——》目标;2).OneWayToSource:目标——》数据源;3).TwoWay:双向;4). OneTime:一次性的OneWay;5). Default:默认,一般除了TextBox的Text和CheckBox的IsChecked是TwoWay,其他为OneWay。

6.数据源改变时通知目标的机制:
 1)、数据源属性为依赖属性,WPF元素(控件)间的绑定,属性多为依赖属性;

 2)、数据源对象实现I NotifyPropertyChange接口

public event PropertyChangedEventHandler PropertyChanged;

public bool IsEnabled
        {
            get
            {
                return isEnabled;
            }
            set
            {
                if (this.isEnabled != value)
                {
                    this.isEnabled = value;
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsEnabled"));
                }
            }
        }

7.数据绑定的方式:

1)、Source:{Binding Source={},Path=Name ,UpdateSourceTrigger=LostFocus}

2)、Element:用于元素间绑定{Binding ElementName = controllName, Path =PropertyName}

3)、RelativeSource :数据源相对位置

 <TextBlock Text="{Binding Path=Title,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
FindAncestor为从目标对象沿着元素树向上查找,直到找到第一个类型为Window的元素,数据源属性为Title。
除了FindAncestor的其他选项:
 (1)、Self:数据源即为目标对象本身,可能绑定当前元素的其他属性;
 (2)、PreviousData : 多用于列表,表示前一列项;
 (3)、TemplatedParent:表示拥有该模板的父类。多用于模板定义。
4)、DataContext

 当多个控件均绑定同一个数据源时,可以在容器元素(如Grid)的DataContext=“{StaticResource object}”,则内部元素<TextBox  Text="{Binding Path  = Name}"/>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值