C# WPF的Binding使用说明

1、绑定模型的理解

每个绑定都始终遵循下图所示的模型:

 

 

 

每个绑定都具有四个要素:绑定目标对象、目标属性、绑定源对象,以及要使用的绑定源中的值的路径

下面以一个例子来分析一下,如下所示,将一个文本输入框和一个叫Name的属性绑定起来:

 <TextBox Margin="10" Height="50" Text="{Binding Path=Name, Mode=TwoWay}" ></TextBox>
<!--Input1是定义在Employee这个类对象中的属性,这里就不把Employee写出来了-->

绑定目标对象:TextBox

目标属性:Text

绑定源对象:Employee对象(即Name这个属性所在的位置)

绑定源的值的路径:Name,也可以理解为将哪个值绑定到目标属性上

 

2、Mode模式使用说明

 

 在使用Binding类的时候有4中绑定模式可以选择

TwoWay 导致对源属性或目标属性的更改可自动更新对方。此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案。
OneWay 当绑定源(源)更改时,更新绑定目标(目标)属性。如果要绑定的控件为隐式只读控件,则适用此绑定类型。例如,可以绑定到如股市代号之类的源。或者,可能目标属性没有用于进行更改(例如表的数据绑定背景色)的控件接口。如果不需要监视目标属性的更改,则使用 OneWay 绑定模式可避免 TwoWay 绑定模式的系统开销。
OneTime 当应用程序启动或数据上下文更改时,更新绑定目标。此绑定类型适用于以下情况:使用当前状态的快照适合使用的或数据状态实际为静态的数据。如果要从源属性初始化具有某个值的目标属性,并且事先不知道数据上下文,则也可以使用此绑定类型。实质上,这是 OneWay 绑定的较简单的形式,它在不更改源值的情况下可提供更好的性能。
OneWayToSource 当目标属性更改时更新源属性。
Default 使用绑定目标的默认 Mode 值。每个依赖项属性的默认值都不同。一般情况下,用户可编辑控件属性(例如文本框和复选框的属性)默认为双向绑定,而多数其他属性默认为单向绑定。确定依赖项属性绑定在默认情况下是单向还是双向的编程方法是:使用 GetMetadata 来获取属性的属性元数据,然后检查 BindsTwoWayByDefault 属性的布尔值。

下面采用一个例子进行说明:将TextBox的文本和Slider的滑块绑定到一起:

 

1             <TextBox Margin="10" Height="50" Text="{Binding Path=Value ,ElementName=slider }"></TextBox>
2             <Slider  Minimum="0" Maximum="100" IsSnapToTickEnabled="True" BorderThickness="1"  Name="slider" Margin="10" Height="50" />

 

 

 

1、Default:Texbox与slider的值变化会互相改变对方

2、TwoWay:对于TextBox来说Default的默认方式就是Default。所以效果同上。

3、OneWay:slider变化会改变TextBox文本,但是TextBox值变化不会反映到slider上

4、OneWayToSource:TextBox值变化会改变slider,但是slider不会改变TextBox

 

 

 


 

posted @ 2021-11-03 14:50  岳振威  阅读(1356)  评论(0编辑  收藏  举报