写个demo很直观的可以看到效果
此例子属于,控件与控件之间的绑定
<Window x:Class="_01WpfDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:_01WpfDemo"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<StackPanel>
<Slider x:Name="slider" Margin="5"></Slider>
<TextBox Text="{Binding ElementName=slider,Path=Value,Mode=OneTime}" Height="30" Margin="5"></TextBox>
<TextBox Text="{Binding ElementName=slider,Path=Value,Mode=OneWay}" Height="30" Margin="5"></TextBox>
<TextBox Text="{Binding ElementName=slider,Path=Value,Mode=OneWayToSource}" Height="30" Margin="5"></TextBox>
<TextBox Text="{Binding ElementName=slider,Path=Value,Mode=TwoWay}" Height="30" Margin="5"></TextBox>
</StackPanel>
</Grid>
</Window>
F12跟踪Mode会看到继承的类
//
// 摘要:
// 获取或设置一个值,该值指示绑定的数据流方向。
//
// 返回结果:
// System.Windows.Data.BindingMode 值之一。 默认值为 System.Windows.Data.BindingMode.Default,它返回目标依赖属性的默认绑定模式值。
// 但是,每个依赖属性的默认值都不同。 通常,用户可编辑的控件属性(如文本框和复选框的控件属性)默认为双向绑定,而其他大多数属性默认为单向绑定。 确定依赖属性绑定在默认情况下是单向还是双向的编程方法是:使用
// System.Windows.DependencyProperty.GetMetadata(System.Type) 获取属性的属性元数据,然后检查 System.Windows.FrameworkPropertyMetadata.BindsTwoWayByDefault
// 属性的布尔值。
[DefaultValue(BindingMode.Default)]
public BindingMode Mode { get; set; }
#region 程序集 PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\PresentationFramework.dll
#endregion
namespace System.Windows.Data
{
//
// 摘要:
// 描述绑定中数据流的方向。
public enum BindingMode
{
//
// 摘要:
// 导致更改源属性或目标属性时自动更新另一方。 此类型的绑定适用于可编辑窗体或其他完整交互式的 UI 方案。
TwoWay = 0,
//
// 摘要:
// 在更改绑定源(源)时更新绑定目标(目标)。 如果绑定的控件为隐式只读,则此类型的绑定适用。 例如,你可能绑定到股票代码等源。 或者可能是未向目标属性提供控件接口来进行更改,例如表的数据绑定背景色。
// 如果无需监视目标属性的更改,则使用 System.Windows.Data.BindingMode.OneWay 绑定模式可避免 System.Windows.Data.BindingMode.TwoWay
// 绑定模式的系统开销。
OneWay = 1,
//
// 摘要:
// 在应用程序启动或数据上下文更改时,更新绑定目标。 如果你在适合使用当前状态的快照或数据实际为静态数据的位置使用数据,则此类型的绑定适合。 如果你想使用源属性中的某个值来初始化目标属性,且提前不知道数据上下文,则此类型的绑定也有用。
// 这是实质上是 System.Windows.Data.BindingMode.OneWay 绑定的一种简化形式,它在源值不更改的情况下提供更好的性能。
OneTime = 2,
//
// 摘要:
// 在目标属性更改时,更新源属性。
OneWayToSource = 3,
//
// 摘要:
// 使用绑定目标的默认 System.Windows.Data.Binding.Mode 值。 每个依赖属性的默认值都不同。 通常,用户可编辑的控件属性(如文本框和复选框的控件属性)默认为双向绑定,而其他大多数属性默认为单向绑定。
// 确定依赖属性绑定在默认情况下是单向还是双向的编程方法是:使用 System.Windows.DependencyProperty.GetMetadata(System.Type)
// 获取属性的属性元数据,然后检查 System.Windows.FrameworkPropertyMetadata.BindsTwoWayByDefault
// 属性的布尔值。
Default = 4
}
}