WPF绑定属性

 

1.创建model类

model类要继承接口INotifyPropertyChanged,用于通知客户端属性值已更改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class StudentModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
 
    public void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
 
    private string name = "";
    public string Name
    {
        get => name; set { name = value; RaisePropertyChanged("Name"); }
    }
}

  

2.创建ViewModel类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Window2ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
 
    private StudentModel studentModel = new StudentModel();
    public StudentModel StudentModel
    {
        get => studentModel; set { studentModel = value; RaisePropertyChanged("studentModel"); }
 
    }
}

  

3.View绑定属性

(1)在Window2.xaml.cs中为DataContext赋值

1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// Window2.xaml 的交互逻辑
/// </summary>
public partial class Window2 : Window
{
    public Window2()
    {
        InitializeComponent();
        this.DataContext = new Window2ViewModel();
    }
}

(2)在Window2.xaml中绑定数据

1
2
3
4
<Grid>
    <TextBox HorizontalAlignment="Left" Height="23" Margin="243,160,0,0" TextWrapping="Wrap" Text="{Binding StudentModel.Name,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="120"/>
    <Label HorizontalAlignment="Left" Height="23" Margin="243,208,0,0" Content="{Binding StudentModel.Name}" VerticalAlignment="Top" Width="120"/>
</Grid>

  

4.效果

在1中输入,2中会及时显示

 

posted @   翻白眼的哈士奇  阅读(2747)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示