首页 > Windows开发 > 详细

wpf---数据绑定:

时间:2020-05-19 16:04:58      阅读:55      评论:0      收藏:0      [点我收藏+]

1,数据绑定的几种方式:

技术分享图片

技术分享图片

重点解释以下几点:1,目标对象的属性是依赖项属性.

                        2,对于Default方式,当目标属性可以设置时,则是双向绑定,否则是单向绑定.

2,使用代码绑定和解除绑定:

            Binding binding = new Binding();
            binding.Source = silderFontSize;//绑定数据源
            binding.Path = new PropertyPath("Value");//注意 使用新类 PropertyPath
            binding.Mode = BindingMode.TwoWay;
            txtBlock.SetBinding(TextBox.TextProperty, binding);//注意 不是 txtBlock.Text---这是string类型,而是TextBlock.TextProperty

获取绑定:

Binding binding = BindingOperations.GetBinding(obj,dependencyProperty)//获取绑定
BindingExpression expression = BindingOperations.GetBindingExpression(obj,dependencyProperty);
object SourceObj = expression.ResolvedSource;
//操作源对象.

3,对于TextBox,虽然是双向绑定,但是只有在失去焦点时候才更新值,所以,可以设定 更新源的方式:

反向更新并不会立刻发生: 这取决于目标属性的方式:

技术分享图片

  Delay: 设定延迟触发源的时间.


利用expression.UpdateSource进行源更新.

  Binding binding = new Binding();
            binding.Source = this;
            binding.Path = new PropertyPath("ContentBox");
            binding.Mode = BindingMode.TwoWay;
            binding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
            inputBox.SetBinding(TextBox.TextProperty, binding);

利用XAML的RelativeSource方法进行测试

 <TextBox x:Name="inputBox" Height="28" Canvas.Left="28" TextWrapping="Wrap"  Canvas.Top="21" Width="169" TextAlignment="Center" FontSize="20"
                 Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}},Path=ContentBox,Mode=TwoWay,UpdateSourceTrigger=Explicit}">



       

技术分享图片


利用 Datacontext进行简化的绑定:

wpf---数据绑定:

原文:https://www.cnblogs.com/frogkiller/p/12917441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!