INotifyPropertyChanged
1.WPF笔记2.WPF将DataGrid中的数据保存到CSV中3.C# 单例使用4.Nlog笔记5.串口学习笔记6.C# 控件设置只可输入数字7.C# 运算符 ?、??、?: 、?. 、各种问号的用法和说明8.Redis笔记9.WinForm实现Loading等待界面10.C# Socket网络编程11.C#正则表达式12.BackgroundWorker控件使用记录
13.INotifyPropertyChanged
14.泛型类和泛型方法15.C# action,delegate,func的用法和区别16.单值转换器17.日志工具18.SqlSugar操作Sqlite数据库19.Winform中创建导航窗口:WizardFramework使用可以将TextBox控件(其他控件也基本一样)与某个变量进行绑定,做出改变变量则控件也跟着改变的效果。
首先需要声明一个类,该类用来与控件绑定:
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace TestWPF
{
public class Person : INotifyPropertyChanged
{
private string _Name;
public string Name
{
get => _Name; //等同于return _Name;
set
{
_Name = value;
//执行通知属性已经发生改变
OnPropertyChanged();
}
}
#region resharper补全代码
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected bool SetField<T>(ref T field, T value, [CallerMemberName]string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(field, value))
{
return false;
}
field = value;
OnPropertyChanged(propertyName);
return true;
}
#endregion
}
}
然后在XAML文件中绑定:
<TextBox Name="textBox1" Width="400" Height="200" Text="{Binding Name}" />//Name为要绑定的变量
其中,继承的INotifyPropertyChanged类是用来发送消息告诉控件变量的值改变了,控件需要作出调整。
接着实例化相应的对象,并跟控件绑定:
public partial class MainWindow : Window
{
public Person person = new Person();
public MainWindow()
{
//初始化
InitializeComponent();
person.Name = "1313";//初始赋值
textBox1.DataContext = person;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
person.Name = textbox2.Text;
}
}
点击按钮修改变量Name的值后,textBox的文本随之改变:
本文作者:时而有风
本文链接:https://www.cnblogs.com/shieryoufeng/p/17812789.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步