WPF之Binding

本文详细介绍了WPF中的Binding概念,包括其在MVVM架构中的作用,如何在XAML和代码中使用,以及多种绑定模式、源选择(DataContext、ElementName、RelativeSource等)、MultiBinding和错误处理(TargetNullValue、FallbackValue)。
摘要由CSDN通过智能技术生成

Binding概念理解

        在WPF(Windows Presentation Foundation)中,Binding是一种机制,用于在UI元素(如控件、数据)和数据源之间建立关联。它允许将UI元素的属性(如文本、颜色、可见性等)与数据源(如对象、集合、数据库)中的数据进行绑定,以便在数据发生变化时,UI元素能够自动更新。        WPF Binding可以用于实现MVVM(Model-View-ViewModel)架构,通过将视图(View)和视图模型(ViewModel)中的属性绑定到数据模型(Model)中的数据,实现了数据驱动的UI更新。这种方式可以将UI的逻辑和数据分离,提高了代码的可维护性和可测试性。Binding可以在XAML中声明,也可以在代码中动态创建。通过Binding,可以实现单向绑定、双向绑定、一次性绑定等不同的绑定模式,以满足不同的需求。总之,WPF Binding是WPF框架中非常重要的一部分,它提供了一种简单而强大的机制,用于将UI元素和数据源之间建立关联,实现数据驱动的UI更新。   

1、DataContext绑定

    以下展示两种常见的绑定

使用d:DataContext="{d:DesignInstance 命名空间:viewModel类}"可以绑定当前xaml与其对应的viewModel类,这个仅用于可以在xaml中转到绑定的属性的定义,实际绑定还需要使用上面两种方式。

2、绑定到控件 

      Binding后面省略,TextBlock会调用DatasContext对象的ToString方法,{Binding .}与省略相同。Binding 后面加字段名称,可以绑定对应字段

还可通过StringFormat进行拼接和格式

3、使用Source绑定源 

       Source绑定源一般与<Window.Resources>(资源词典)一起使用。在资源词典里面带有key的都可以访问到。枚举、静态变量、常量访问使用x:Static。

4、使用ElementName绑定源 

可以通过控件的名称进行绑定。以下为将一个TextBlock的Text与TextBox的Text绑定

TextBlock.ToolTip由于脱离了Window所在的可视化树,在一个新的PopupRoot,所以要使用Source进行绑定。同理的还有DataGrid的DataGrid.Columns下的DataGridTextColumn

5、使用RelaticeSource绑定源

相对源,可以通过控件类型来绑定父级的属性,如下是将TextBlock的Text绑定Window的Top值。

对于嵌套类型的情况,可通过AncestorLevel来指定层级(往上找到的第几个)

如果要绑定同级的,可以通过RelativeSource先找到父级,再通过Path=Children进行指定。

绑定自己 Self

6、TargetMullValue与FallbackValue

对于不是开始就指定的值,可以通过TargetNullValue指定一个默认值。

   绑定失败的可以指定一个值,比如绑定的字段在DataContext中无。

7、MultiBinding绑定多个

可以使用MultiBinding绑定多个字段。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值