首页 > 其他分享 >wpf 数据绑定 执行流程

wpf 数据绑定 执行流程

时间:2024-01-30 15:25:55浏览次数:23  
标签:OnPropertyChanged name 流程 绑定 event Person wpf public string

数据绑定

SimpleBinding\MainWindow.xaml

<Window x:Class="SimpleBinding.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:SimpleBinding"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <local:Person x:Key="MyDataSource" PersonName="Joe"/>
    </Window.Resources>
    <Border Margin="5" BorderBrush="Aqua" BorderThickness="1" Padding="8" CornerRadius="3">
        <DockPanel Width="200" Height="100" Margin="35">
            <Label>Enter a Name:</Label>
            <TextBox>
                <TextBox.Text>
                    <Binding Source="{StaticResource MyDataSource}" Path="PersonName"
                   UpdateSourceTrigger="PropertyChanged"/>
                </TextBox.Text>
            </TextBox>
            <Label>The name you entered:</Label>
            <TextBlock Text="{Binding Source={StaticResource MyDataSource}, Path=PersonName}"/>
        </DockPanel>
    </Border>
</Window>

SimpleBinding\Person.cs

using System.ComponentModel;
using System.Windows;
using System.Windows.Interop;

namespace SimpleBinding
{
    // This class implements INotifyPropertyChanged
    // to support one-way and two-way bindings
    // (such that the UI element updates when the source
    // has been changed dynamically)
    public class Person : INotifyPropertyChanged
    {
        private string _name;

        public Person()
        {
            MessageBox.Show("Person()", "y/n", MessageBoxButton.YesNo);
        }

        public Person(string value)
        {
            _name = value;
        }

        public string PersonName
        {
            get { return _name; }
            set
            {
                _name = value;
                // Call OnPropertyChanged whenever the property is updated
                OnPropertyChanged("PersonName");
            }
        }

        // Declare the event
        public event PropertyChangedEventHandler PropertyChanged;
        // Create the OnPropertyChanged method to raise the event
        protected void OnPropertyChanged(string name)
        {
            MessageBox.Show("OnPropertyChanged", "y/n", MessageBoxButton.YesNo);
            var handler = PropertyChanged;
            handler?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }
}

执行流程

Alt text

标签:OnPropertyChanged,name,流程,绑定,event,Person,wpf,public,string
From: https://www.cnblogs.com/zhuoss/p/17997177

相关文章

  • 亿图图示:流程图的快速绘制
    一、流程图的要求确定流程的开始和结束:在画流程图时,首先要确定流程的起始点和终止点。通常,起始点用椭圆形表示,终止点用三角形表示。按照流程顺序绘制:从起始点开始,按照流程的顺序,一步步地绘制出流程的各个环节。每个环节用矩形表示,并标注出该环节的名称或操作。确定流程分支:......
  • go启动流程(一) main函数的执行
    go版本:go1.19操作系统:linux系统架构:amd64go version go1.19 linux/amd64本文主要分析在go程序中,编写的main函数是如何被执行的。流程总览图启动流程从程序执行入口开始利用gdb确定程序执行入口编写一个简单的go程序//main.gopackage mainimport "fmt"func main......
  • 龙年红包封面粉丝专属限量款红包封面-AI定制全流程
    快过年了,微信红包封面也开始卷了起来。今年在AI辅助下,几乎每个人都能设计自己的专属红包封面了。有了AI绘图,登录微信红包封面开放平台,就可以开始定制。需要提醒的是:无法以个人身份定制的,微信要求,你必须有个100粉的公众号或者视频号,才可以定制。封面定制操作你有了资格后,认证......
  • WPF 列表内容跟值来排布位置
    首先是利用 ItemsControl来随机(或者根据绑定传的值)来分布位置主要是用Canvas来当画布,然后由值来调整位置 首先,创建实体类publicclassClassA{publicdoubleUpTop{get;set;}publicdoubleUpLeft{get;set;}}然后再你的ViewModel调用publiccl......
  • Prism:打造WPF项目的MVVM之选,简化开发流程、提高可维护性
     概述:探索WPF开发新境界,借助PrismMVVM库,实现模块化、可维护的项目。强大的命令系统、松耦合通信、内置导航,让您的开发更高效、更流畅在WPF开发中,一个优秀的MVVM库是Prism。以下是Prism的优点以及基本应用示例:优点:模块化设计: Prism支持模块化开发,使项目更易维护和扩展。......
  • 【19.0】MySQL进阶知识之流程控制
    【零】各种语言中的流程控制语句【1】Pythonif条件:子代码elif条件:子代码else:子代码【2】JavaScriptif(条件){子代码}elseif(条件){子代码}else{子代码}【3】MySQLif语句if条件then子代码elseif条件then子代码else......
  • CSS绘制简单的流程图
    效果图代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document<......
  • 物流平台如何与电商平台进行自动化流程管理
    为什么要实现物流与电商平台进行自动化管理实现物流平台与电商平台的自动化流程管理对企业和消费者都有着重要的意义,比如以下几点:提高效率:自动化流程管理可以减少人为操作的错误和延误,提高订单处理和物流配送的效率。通过定义清晰的流程图和自动化工具,可以快速而准确地完成订单处理......
  • 怎样用流程自定义表单提升办公效率?
    如果想要提升办公协作效率,可以试试低代码技术平台及流程自定义表单工具。不可否认的是,随着社会的进步和发展,传统的表单制作工具已经没有办法再满足业务量不断上涨的办公需求了,但是,借助专业的流程自定义表单工具就能很好地满足业务需求,实现高效式办公发展。那么,为什么现在低代码技......
  • 通过Demo学WPF—数据绑定(一)✨
    前言✨想学习WPF,但是看视频教程觉得太耗时间,直接看文档又觉得似懂非懂,因此想通过看Demo代码+文档的方式进行学习。准备✨微软官方其实提供了WPF的一些Demo,地址为:microsoft/WPF-Samples:RepositoryforWPFrelatedsamples(github.com)将其克隆到本地,有很多的Demo代码:新建......