wpf绑定

本文介绍了WPF中的绑定技术,作为替代事件触发中控件与函数手动关联的简便方法。内容涵盖控件与控件之间的绑定,以及控件与属性的绑定。通过创建特定类并设置属性,然后在MainWindow中进行赋值,实现XAML中的数据绑定。同时,还讲解了静态属性的绑定,包括如何创建储存信息的静态字段类,并在XAML中应用。

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

 绑定

在触发事件中把各个控件和函数建立关系太过于麻烦,可以尝试使用绑定的方式。

控件与控件的绑定

<Window x:Class="WpfApp2.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:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
   
       
    
    <StackPanel>
        <Button Width="100" Height="40" />
        <Slider x:Name="slider"/>
        <TextBox  Height="40" Text="{Binding ElementName=slider,//要绑定的控件名
                                     Path=Value,                //要绑定控件的部位
                                     Mode=TwoWay             //绑定模式:
                                     }"/>                     TwoWay 双向绑定  
                                                              OneWay 单向绑定
                                                      OneWayToSource 相反的单向绑定
                                                              OneTime 绑定的第一次 
    </StackPanel>
</Window>

控件和属性的绑定

1、创建一个类

internal class Students
{
    private string _name;
    public string Name { get => _name; set => _name = value; }
}

2、在MainWindow中给属性赋给面板

public partial class MainWindow : Window
{
    MainWindow()
    {
        InitializeComponent();
        this.DataContext = new Students() { Name="文豪" };
    }
}

3、xaml

<Window x:Class="WpfApp2.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:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">



    <StackPanel>
        <TextBox  Height="40" Text="{Binding Name}" TextChanged="TextBox_TextChanged"/>
    </StackPanel>
</Window>

控件可静态属性的绑定(带通知)

1、创建的要储存信息的静态字段的类

internal class Class1 
{
    private static readonly PropertyChangedEventArgs FilterStringPropertyEventArgs = new 
    PropertyChangedEventArgs(nameof(Name));
    public static event PropertyChangedEventHandler StaticPropertyChanged;
    private static string _name;
    
    public static string Name
    { 
        get => _name; 
        set {
            _name = value;
            StaticPropertyChanged?.Invoke(null, FilterStringPropertyEventArgs);
            }
    }

}

2、xmal

<Label x:Name="l" Width="40" Height="30" Content="{Binding Path=(local:Class1.Name)}"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值