码迷,mamicode.com
首页 > Windows程序 > 详细

WPF 入门《数据绑定》

时间:2018-05-09 19:40:57      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:.data   source   运行   sharp   告诉   数据对象   slider   str   方式   

  简单而言, 数据绑定是一种关系, 这种关系告诉WPF 从一个源目标对象中提取一些信息, 并且使用该信息设置为目标对象的属性。目标属性总是依赖项属性, 并且通常位于WPF元素中。

  然而, 源对象可以是任何内容, 可是是随机生成的一个对象、也可以是数据库的数据对象,或者手动创建的对象。

1.简单绑定

  为了能够简单理解这种绑定关系, 接下来简单示例, 用一个数值滚动条, 动态修改一个文字的字体大小, 通过绑定的方式。

    <StackPanel>
        <Slider Name="s1" Value="10" Maximum="100"></Slider>

        <TextBlock FontSize="{Binding ElementName=s1,Path=Value}" Text="看着我" ></TextBlock>
    </StackPanel>

  上图中, TextBlock的字体大小FontSize通过绑定的形式与名称为s1的元素Value属性绑定。

注:数据绑定表达式使用了XAML标记扩展, 所以绑定表达式以单词Binding 开头。该示例中设置的两个属性: ElementName(源对象元素) 和Path(源对象元素中的属性)。

运行测试效果:

技术分享图片

 

绑定错误

  WPF不会引发异常来通知与数据绑定相关的问题, 如果指定的元素不存在或错误, 不会收到任何提示, 最简单的只是目标的属性无法发生改变, 不过, WPF仍然会在输出窗口显示其绑定失败的具体细节。

 

绑定模式

  在上面的示例中, 只是一个最简单的绑定, 们可以假设一个环境, 在上面的例子基础上另外加一个按钮, 去单独实现字体的大小设置, 然而拖动条并不会随着按钮设置的字体大小而改动。

  但是在实际应用中, 我们甚至会用到的多种绑定模式, 所以在WPF中, 含有5种绑定的模式, 包含在System.Windows.Data.BindingMode枚举中。

OneWay 当源属性变化时更新目标属性
TwoWay 当源数据变化时更新目标属性, 并且当目标属性变化时更新源属性
OneTime 最初根据源属性值设置目标属性。然而, 在此之后的所有改变都会被忽略(除非绑定被设定为一个完全不同的对象或者调用BindingExpression.UpdateTarget()方法, 如稍后所介绍的那样)。通常, 如果知道源属性不会变化, 可以使用这种模式降低开销。
OneWayToSource 和OneWay 类似, 但是方向相反。当目标属性变化时更新源属性(这看起来有点像向后传递),但目标属性永远不会更新。
Default 此类绑定依赖于目标属性。它既可以是双向的(对于用户设置的属性, 如Textbox.Text属性),也可以是单向的(对于所有其他属性)。除非明确指定了另外一种模式, 否则所有绑定都使用该方法。

在此, 对于OneTime设置过一次就无效,和默认default模式就不过多介绍, 下面对其他集中进行简单分析:

技术分享图片

 

WPF 入门《数据绑定》

标签:.data   source   运行   sharp   告诉   数据对象   slider   str   方式   

原文地址:https://www.cnblogs.com/zh7791/p/9015775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!