WPF实现数据绑定基础整理

一、数据绑定概述

数据绑定是将应用程序的数据和 UI 元素连接起来的一种技术。在 WPF 中,数据绑定提供了一种声明性的方法,使 UI 层和业务逻辑层的代码更加分离。在 WPF 中,主要涉及以下几个绑定源和目标:

  • 绑定源:通常是一个数据对象,例如类实例、集合或 XML 数据。
  • 绑定目标:一般是一个 UI 元素的属性。

.数据绑定的核心元素

  • Binding 对象:描述了源属性和目标属性之间的连接。
  • Binding Target:通常是一个 DependencyProperty(依赖属性)。
  • Binding Source:可以是任意对象。
  • DataContext:数据上下文,通常用于为整个控件树提供绑定源的默认数据源。
  • 数据转换:在源和目标之间转换数据,例如格式化显示数据。

 

二、实现数据对象绑定、数据集合绑定

1.对象绑定

WPF 中最简单的绑定是通过 XAML 使用 Binding 对象。它可以直接绑定属性到数据源。

<TextBlock Text="{Binding Name}" />

在这个例子中,假设 DataContext 是一个 Person 对象,则 Name 属性将被绑定到 TextBlock 的 Text 属性。

this.DataContext=new Person();

2. 绑定到集合

WPF 提供了对集合进行绑定的支持,通过 ItemsControl(如 ListBoxComboBox)可以绑定并展示数据集合。

<ListBox ItemsSource="{Binding People}" DisplayMemberPath="Name"/>

People 是一个集合,例如 ObservableCollection<Person>ListBox 会自动为集合中的每一项创建 ListBoxItem,并显示 Person 的 Name 属性。

 

三、实现数据绑定的方式

1.单向绑定

单向绑定是从源属性到目标属性的单向数据流。当数据源发生变化时,UI 会自动更新。默认情况下,绑定是单向的。

<TextBlock Text="{Binding Path=Name, Mode=OneWay}" />

2. 双向绑定

双向绑定允许源属性和目标属性之间相互更新。这通常用于用户输入控件,例如 TextBox

<TextBox Text="{Binding Path=Name, Mode=TwoWay}" />

 

四、多绑定和绑定优先级

1.MultiBinding

有时候需要根据多个源来设置一个目标属性。这时可以使用 MultiBinding

 

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} {1}">
            <Binding Path="FirstName" />
            <Binding Path="LastName" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

 

2.PriorityBinding

PriorityBinding 用于绑定多个数据源,但取第一个成功获取值的绑定。

<TextBox>
    <TextBox.Text>
        <PriorityBinding>
            <Binding Path="FirstChoice" />
            <Binding Path="SecondChoice" />
        </PriorityBinding>
    </TextBox.Text>
</TextBox>

 

数据绑定中数据转换,参考其他文章

 

更多:

WPF 数据绑定Binding使用整理

Wpf 数据绑定简介、实例1

Wpf 数据绑定实例2

posted @ 2025-06-28 15:06  天马3798  阅读(85)  评论(0)    收藏  举报