欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  470 随笔 :: 0 文章 :: 22 评论 :: 30万 阅读
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
复制代码
<Window x:Class="BindingDemo1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="254" Width="430" Loaded="Window_Loaded">
    <Grid Name="gr">
        <Button Content="name" Height="23" HorizontalAlignment="Left" Margin="48,65,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <TextBox Height="23" HorizontalAlignment="Left" Margin="48,12,0,0" Name="txtName"  VerticalAlignment="Top" Width="333" />
        <Button Content="age" Height="23" HorizontalAlignment="Left" Margin="48,169,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
        <TextBox Height="23" HorizontalAlignment="Left" Margin="48,116,0,0" Name="txtAge" VerticalAlignment="Top" Width="333" />
    </Grid>
</Window>
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System.ComponentModel;
 
namespace BindingDemo1
{
    class Student : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
 
        private string name;
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                if (this.PropertyChanged != null)
                {
                    this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Name"));
                }
            }
        }
 
        private int age;
        public int Age
        {
            get { return age; }
            set
            {
                age = value;
                if (this.PropertyChanged != null)
                {
                    this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Age"));
                }
            }
        }
    }
}namespace BindingDemo1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        Student stu = new Student();
        public MainWindow()
        {
            InitializeComponent();
 
            this.DataContext = stu;
 
            this.txtName.SetBinding(TextBox.TextProperty, new Binding("Name"));
            this.txtAge.SetBinding(TextBox.TextProperty, new Binding("Age"));
        }
 
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            stu.Name += "testName";
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            stu.Age += 10;
            stu.Name += "testName";
        }
 
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            stu.Age += 10;
        }
    }
}

using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;

INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。

使用方式(操作步骤):
1. 定义(类必须继承INotifyPropertyChanged接口)
2. 页面实例化
3. XAML UI 绑定
4. 其他 UI 改变其绑定值

注意:
以上操作可参考“实例一”中描述;
通知项属性用于不同UI中动态改变绑定信息;
INotifyPropertyChanged为接口,PropertyChanged为事件,在更改属性值时触发(PropertyChanged 事件
可以通过将 null或 String. Empty 用作 PropertyChangedEventArgs 中的属性名,指示该对象上的所有属性
都已更改);

posted on   sunwugang  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
点击右上角即可分享
微信分享提示