相关文章推荐
俊逸的土豆  ·  RDS SQL ...·  2 年前    · 
逆袭的凉面  ·  Visual Studio 中的 ...·  2 年前    · 

要使后台类对象的属性值发生改变,通知在“界面与之绑定的控件值”,需要实现INotitypropertyChanged接口。

INotifyPropertyChanged 接口用于通知客户端(通常是绑定客户端)属性值已更改。

INotifyPropertyChanged是.net内置的接口,数据绑定DataContext是否实现了INotityPropertyChanged接口,如果实现了,就会监听PropertyChanged得知属性的变化。

如果要求后台对象的值发送改变,界面的值也跟着变,则需要实现INotityPropertyChanged接口,并且在对象属性值变化后触发事件。

如果说后台对象的值会不变,则没有必要实现这个接口

前端设计 MainWindow.xaml

<Window x:Class="BindDataContextDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="250" Width="300" >
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Text="用户名" FontSize="15"/>
        <TextBox Text="{Binding UserName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="180" Height="30" FontSize="15" Margin="10"/>
        <TextBlock Text="年龄" FontSize="15"/>
        <TextBox Text="{Binding UserAge,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="180" Height="30" FontSize="15" Margin="10"/>
        <Button Content="读取数据更新界面" Width="180" Height="40" FontSize="15" Click="Update_Click"/>
    </StackPanel>
</Window>

后台逻辑 MainWindow.xaml.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BindDataContextDemo
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window, INotifyPropertyChanged
        public MainWindow()
            this.DataContext = this;
            InitializeComponent();
        private string userName = "张三";
        public string UserName
            get { return userName; }
                userName = value;
                OnPropertyChanged("UserName");
        private int userAge = 0;
        public int UserAge
            get { return userAge; }
                userAge = value;
                OnPropertyChanged("UserAge");
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string propertyName)
            if (PropertyChanged != null)
                PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
        private void Update_Click(object sender, RoutedEventArgs e)
            UserName = "常昊灵";
            UserAge = 100;

软件运行结果展示

    点击按钮,数据变化   

之前项目中,忘记继承INotifyPropertyChanged接口,导致数据不变化,以其文章记录,方便后期开发出现同样问题,快速找到原因。

要使后台类对象的属性值发生改变,通知在“界面与之绑定的控件值”,需要实现INotitypropertyChanged接口。INotifyPropertyChanged 接口用于通知客户端(通常是绑定客户端)属性值已更改。INotifyPropertyChanged是.net内置的接口,数据绑定DataContext是否实现了INotityPropertyChanged接口,如果实现了,就会...
对于想创业的朋友们而言,大家都知道,现在一二线城市的经济虽然比较发达,但是相对应的市场竞争力也会比较大。 而小县城的经济虽然没有一二线城市那么发达,但是所面对的市场竞争力却会少很多,因此有不少的创业者会选择在县城投资项目。 但是这么多的行业,到底哪些项目更得我们选择呢?接下来迎财云为大家介绍几个县城不起眼的偏门暴利贝兼钱小生意。 早教行业可以说是目前最具发展潜力的行业之一,因为随着生...
现在想创业的人很多,大家都想自由财务,现在社会发展的很快,赚钱的路子也很多。创业不简单,有失败的有成功的。但我觉得创业真的不分地域的,只要有前途,项目好,发展空间大的就可以。你可以做个对你们县城的一个市场调查,看下他们的消费水平在什么程度和最受欢迎的产品。一般认为,在小的城市创业,不开公司的话,做点小生意的话前期投资成本很少的。 不妨你可以试试做餐饮这个行业,你要肯吃苦,做这个是没问题的。像开个...
说实话,现在市场上的小生意都是普通人赚一点辛苦钱。月入过万肯定不容易,要注意天时地利人和。回答这个粉丝的问题,一个40岁的男人在小县城做什么小生意,一个月能赚一万多?这里只能推荐一些项目,仅供调查选择。 课外培训班 小县城的家长对孩子的教育和大城市一样重视,不怕花钱。一个40岁的男人在一个小县城开了一个课外培训班,专门针对中小学生。最好上美术课,比如美术,书法,舞蹈,英语,留学,钢琴,目前很流行。因为现在很多家长都不希望自己的孩子输在起跑线上,所以不会吝啬。况且我国还在进行素质教育,提倡全面发展,做好工
在县城创业适合做什么? 很多人呐,在外打工多年,也许有一定的积蓄了,想回自己的家乡创业,也有一部分不想出去打工了,想在自己家做点儿小买卖,小生意,但我们不得不说呀,很多人低估了小县城创业艰难和困难程度,我们不得不承认,有时候县城创业比大城市创业还要困难竞争力还要大, 县城本身消费能力水平和消费理念就不是特别高,再加上一部分做生意的人也比较多,还有部分有钱人一般都不会在县城消费,都会去外地,省会...
WPFS数据绑定(要是后台Person对象的属性发生改变通知客户端界面与之绑定控件发生改变需要实现INotitypropertyChanged接口) MainWindow.xaml <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xa
过去几年,一直在四五线城市做商业项目(给别人打工,做县域经济调研),因此,对县域经济环境有一些了解。虽然这个题目不在我的兴趣领域范围,但这几年积累下来的、在县城做生意的观察和体会,刚好与题旨相符,所以,就分享出来,希望能带给小县城里的年轻创业者们一些有益的参考。 第一,做“原产地农副产品”的电商,或者干脆在淘宝上开个小店,应该都是不错的选择。注意,“原产地”这块牌子,越往后越钱 过去几年,县...
WPFS数据绑定(要是后台类对象属性发生改变通知在“client界面与之绑定控件”也发生改变须要实现INotitypropertyChanged接口) MainWindow.xaml <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx...
1.为应用程序提供了一种表示数据和与数据交互的简单而又一致的方法。 2.元素能够以公共语言运行时 (CLR) 对象和 XML 的形式绑定到各种数据源中的数据。 3.数据绑定可能还意味着如果元素中数据的外部表现形式发生更改,则基础数据可以自动更新以反映更改。 4.一种典型用法是将服务器或本地配置数据放置到窗体或其他 UI 控件中。在 WPF 中,元素的依赖项属性可以绑定到 CLR 对象(包括 ADO.
WPF最重要的概念就是MVVM,前端代码与后台代码应该相互隔离,尽量减少彼此间的依赖。而为了做到这点,WPF最重要的概念Binding绑定应运而生,是为了解决前后端数据互相同步的问题。 绑定概念由三部分组成:绑定目标(前端页面),绑定源(后台属性),绑定动作。 绑定目标可以是前端页面中的控件属性或者是常见键鼠事件(InputBinding和Command) 其中绑定动作有六种:OneWay / OneTime / Default / OneWay / TwoWay / OneWayToSource,常