WPF 的5种绑定模式(Mode)

 写个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
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值