zoukankan      html  css  js  c++  java
  • 细说WPF数据绑定

    简单的事例:

     
    <Slider  Name="mySlider" Height="28" HorizontalAlignment="Left"
     Margin="33,40,0,0" VerticalAlignment="Top" Width="243" />
     <TextBlock  Name="myTextBlock" Height="23"
     HorizontalAlignment="Left" Margin="44,94,0,0" Text="TextBlock"
     FontSize="{Binding ElementName=mySlider,Path=Value}" 
    VerticalAlignment="Top" Width="95" />
     
     FontSize="{Binding ElementName=mySlider,Path=Value}" 中ElementName表示源元素,Path表示源元素中的属性。
     
    Binding binding = new Binding();
    binding.Source = mySlider;
    binding.Path = new PropertyPath("Value");
    binding.Mode = BindingMode.TwoWay;
    this.myTextBlock.SetBinding(TextBlock.FontSizeProperty, binding);
     

    以上分别用XAML和代码实现简单的绑定,以下介绍绑定方向:

    1.OneWay,当源属性变化时更新目标属性。 
    2.TwoWay,当源属性变化时更新目标属性并更新源属性。 
    3.OneTime,根据源属性设置目标属性。 
    4.OneWayToSource,和OneWay相似,但方向相反。 
    5.Default,绑定依赖于目标属性,可单双向。

    绑定的发行是由Binding.UpdataSourceTrigger属性控件,包括:

    1.PropertyChanged,当目标发生变化时立即更新。 
    2.LostFocus,当目标发生变化并失去焦点时更新。 
    3.Explicit,除非调用BindingExpression.UpdataSource方法,否则不更新。 
    4.Default,根据目标属性确定更新行为。

    值得注意的是,当绑定到一个非元素对象时,要放弃Binding.ElementName属性,可以用以下之一:

    1.Source,指向源对象的引用。 
    2.RelativeSource,使用RelativeSource对象去指向源对象的引用。 
    3.DataContext,没有使用Source和RelativeSource属性时,检查元素树并使用第一个  
    DataContext.
  • 相关阅读:
    Wauzh原理简析及audit规则风险评估
    浅析这句经常在框架中出现的JS代码加深对bind的理解
    浅析如何做web安全问题
    浅析JavaScript到底是什么
    浅析webpack异步加载原理及分包策略
    浅析JavaScript的执行机制
    浅析如何提高代码可读性复用性拓展性
    浅析代码编译过程
    浅析JavaScript的7种异常类型及如何快速排查
    浅析浏览器是如何调度进程和线程的
  • 原文地址:https://www.cnblogs.com/wlming/p/5275818.html
Copyright © 2011-2022 走看看