当前位置: 首页 > article >正文

WPF 控件数据源绑定

WPF 控件数据源绑定

  前提:我的数据源都放在 DataProcessView 类中,然后在 MainWindow 中声明该类的对象 DataProcess,如果是指定了 DataContext ,就将该对象赋值给 DataContext (如下),否则不赋值

public partial class MainWindow : Window
{
    public DataProcessView DataProcess { get; set; }//需要指定为 public 权限
    public MainWindow()
    {
        InitializeComponent();
        DataProcess = new DataProcessView();
        this.DataContext = DataProcess;
    }
}

对于普通属性、

public class DataProcessView : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler? PropertyChanged;
	private string _currenttime;
	public string CurrentTime
	 {
	     get { return _currenttime; }
	     set
	     {
	         if (_currenttime != value)
	         {
	             _currenttime = value;
	             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("CurrentTime"));
	         }
	     }
	 }
}

指定 DataContext 的前提下,为一个 Label 控件 Context 在 xaml 中赋值,如下:

Content="{Binding CurrentTime}"

未指定 DataContext 的前提下,未指定就需要将数据源的路径给写清楚

Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataProcess.CurrentTime}"

对于类属性

public class DataProcessView : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler? PropertyChanged;
	private ButtonModel _btn1text;
    public ButtonModel Btn1Text
    {
        get { return _btn1text; }
        set
        {
            if (_btn1text != value)
            {
                _btn1text = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Btn1Text"));
            }
        }
    }
}

指定 DataContext 的前提下,为一个 Button 控件 Context 在 xaml 中赋值,如下:

Content="{Binding Path=BtnGuanBiYYText.Text}"

未指定 DataContext 的前提下,未指定就需要将数据源的路径给写清楚

Content="{Binding RelativeSource ={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataProcess.Btn1Text.Text}"

对于集合属性

集合属性


http://www.kler.cn/news/314258.html

相关文章:

  • 大语言模型应用的业务架构点
  • Transformer模型-7- Decoder
  • MATLAB绘图基础8:双变量图形绘制
  • Day25笔记-普通文件读写with上下文二进制文件csv文件
  • hadoop大数据平台操作笔记
  • 消息队列选型参考:Top5消息队列组件
  • Qt:智能指针QScopedPointer 的使用(以及如何写一个QScopedPointer )
  • [SDX35+WCN6856]SDX35 开启class/gpio子系统配置操作说明
  • 在Python中,类是用于定义对象的蓝图或模板,而对象则是根据类创建的具体实例
  • 【RPA私教课:UIPath】RPA 赋能科技企业,登录时验证码自动截取
  • SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
  • pytorch 同步机制
  • docker desktop windows stop
  • @EnableScheduling 和 @Scheduled 实现定时任务的任务延期问题
  • Linux:login shell和non-login shell以及其配置文件
  • MQ入门(4)
  • kubernetes基础命令
  • 论文阅读--Planning-oriented Autonomous Driving(一)
  • “华为杯”第十二届中国研究生数学建模竞赛-D题:面向节能的单/多列车优化决策问题研究(续)(附MATLAB代码实现)
  • IPsec-VPN中文解释
  • 数据结构:二叉树(一)
  • 【计算机网络】详解UDP套接字网络字节序IP地址端口号
  • 2025年最新大数据毕业设计选题-Hadoop综合项目
  • TCP客户端编码和解码处理:发送和接收指定编码消息
  • 深度学习——基础知识
  • 初识zookeeper
  • 计组(蒋)期末速成笔记1
  • 基于MATLAB的运动模糊图像处理
  • LVGL学习
  • ES6 -- 2015