WPF 的 Binding基础知识01

本文介绍WPF中的数据绑定技术,包括基础绑定方法、文本框的绑定及更新机制、控件间的绑定实例。通过实例演示如何使用不同的绑定方式来实现UI与数据的同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、基础Binding方法

1.新建一个Mydata类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyFirstWPF
{
    public class MyData
    {
        public MyData()		// 如果不需要默认值可以不写构造函数
        {
            this.ColorName = "red";
        }
        public string ColorName { get; set; }
    }
}

2.绑定方式

A. 空绑定

<ListBox Width="150" Height="90" ItemsSource="{Binding}" />

B. 静态资源资源绑定-1

    <StackPanel>
        <StackPanel.Resources>
            <local:MyData x:Key="ResourceMyData"/>
        </StackPanel.Resources>
        <Button Width="150" Height="30" Content="我的背景是红色的" Background="{Binding Source={StaticResource ResourceMyData}, Path=Color}"/>
    </StackPanel>

C. 静态资源资源绑定-2(利用DataContext属性,直接设置Binding ,可减少代码量)

    <StackPanel>
        <StackPanel.Resources>
            <local:MyData x:Key="ResourceMyData"/>
        </StackPanel.Resources>
        <StackPanel.DataContext>
            <Binding Source="{StaticResource ResourceMyData}"/>
        </StackPanel.DataContext>
        <Button Width="150" Height="30" Content="我的背景是红色的" Background="{Binding Path=Color}"/>
    </StackPanel>

二、文本框的绑定和及时更新

1.新建一个User类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyFirstWPF
{
    public class User
    {
        public string Name { get; set; }
    }
}

2.绑定方式

在需要发送更新的控件中,Binding 属性需要设置 UpdateSourceTrigger

    <StackPanel Height="35" Orientation="Horizontal">
        <StackPanel.Resources>
            <local:User x:Key="ResourceUser"/>
        </StackPanel.Resources>
        <Label Content="请输入用户名:"/>
        <TextBox Width="150" Height="35">
            <TextBox.Text>
                <Binding Source="{StaticResource ResourceUser}" Path="Name" UpdateSourceTrigger="PropertyChanged"/>
            </TextBox.Text>
        </TextBox>
        <Label Content="当前输入的内容是:"/>
        <TextBlock Text="{Binding Source={StaticResource ResourceUser}, Path=Name}"/>
    </StackPanel>

三、控件之间的绑定

使用ElementName绑定控件,Path选择要绑定的属性

    <Border BorderBrush="Gray" BorderThickness="1" Margin="10" Padding="8">
        <DockPanel>
            <Label Content="请选择一个颜色"/>
            <ComboBox Name="ComboBox01" SelectedIndex="0">
                <ComboBoxItem>Green</ComboBoxItem>
                <ComboBoxItem>blue</ComboBoxItem>
                <ComboBoxItem>red</ComboBoxItem>
            </ComboBox>
            <Canvas>
                <Canvas.Background>
                    <Binding ElementName="ComboBox01" Path="SelectedItem.Content"/>
                </Canvas.Background>
            </Canvas>
        </DockPanel>
    </Border>

写在最后

本博文只是在学习c#的过程中所做的笔记,方便以后查阅实现过程。资料均来自网上,如果有侵权请联系我删除,谢谢。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值