原文:WPF 精修篇 数据绑定 更新通知

开始更新一点有意思的了

首先 数据绑定  其中之一 Element 绑定

看例子


  1. <Window x:Class="WpfApplication20.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow" Height="156.383" Width="246.489" x:Name="MWindow">
  5. <Grid>
  6. <TextBox HorizontalAlignment="Left" Height="23" Margin="30,48,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Text="{Binding ElementName=MWindow,Path=PresonName}"/>
  7. <TextBlock HorizontalAlignment="Left" Margin="30,16,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="42" Text="部门:"/>
  8. <Button Content="提交" HorizontalAlignment="Left" Margin="30,85,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
  9. <Button Content="重置" HorizontalAlignment="Left" Margin="127,85,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
  10. <TextBlock HorizontalAlignment="Left" Margin="85,16,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding ElementName=MWindow,Path=Department}"/>
  11. </Grid>
  12. </Window>

  1. public partial class MainWindow : Window,INotifyPropertyChanged
  2. {
  3. public MainWindow()
  4. {
  5. InitializeComponent();
  6. }
  7. private string department;
  8. public string Department
  9. {
  10. get { return "软件开发"; }
  11. }
  12. private string presonName;
  13. public string PresonName
  14. {
  15. get { return presonName; }
  16. set { presonName = value;
  17. OnPropertyChanged("PresonName");
  18. }
  19. }
  20. private void Button_Click(object sender, RoutedEventArgs e)
  21. {
  22. MessageBox.Show("Hi," + PresonName);
  23. }
  24. private void Button_Click_1(object sender, RoutedEventArgs e)
  25. {
  26. PresonName = "";
  27. }
  28. #region INotifyPropertyChanged 成员
  29. public event PropertyChangedEventHandler PropertyChanged;
  30. public void OnPropertyChanged(string name)
  31. {
  32. if(PropertyChanged!=null){
  33. PropertyChanged.Invoke(this,new PropertyChangedEventArgs(name));
  34. }
  35. }
  36. #endregion
  37. }

我们在这个例子里有俩个操作

一个是数据绑定

一个是数据通知

绑定 是用Element 指定window 窗体 因为 创建属性以后 window 窗体就有这个属性 通过名字.属性的方式

通知 需要继承 INotifyPropertyChanged

实现接口方法

public event PropertyChangedEventHandler PropertyChanged;

public void OnPropertyChanged(string name) 

        {

            if(PropertyChanged!=null){

            PropertyChanged.Invoke(this,new PropertyChangedEventArgs(name));

            }

        }

在需要通知的属性下面  加上

OnPropertyChanged(“”属性名“”);

就可以起到通知作用

WPF 精修篇 数据绑定 更新通知的更多相关文章

  1. WPF 精修篇 数据绑定到对象

    原文:WPF 精修篇 数据绑定到对象 数据绑定到对象 首先 我们需要一个对象 public class Preson { private string name; public string Name ...

  2. WPF 精修篇 非UI进程后台更新UI进程

    原文:WPF 精修篇 非UI进程后台更新UI进程 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11* ...

  3. WPF 精修篇 用户控件

    原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...

  4. WPF 精修篇 依赖属性

    原文:WPF 精修篇 依赖属性 依赖属性使用场景 1. 希望可在样式中设置属性. 2. 希望属性支持数据绑定. 3. 希望可使用动态资源引用设置属性. 4. 希望从元素树中的父元素自动继承属性值. 5 ...

  5. WPF 精修篇 数据触发器

    原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...

  6. WPF 精修篇 属性触发器

    原文:WPF 精修篇 属性触发器 属性触发器是通过  某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...

  7. WPF 精修篇 样式继承

    原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...

  8. WPF 精修篇 自定义控件

    原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...

  9. WPF 精修篇 DataGrid 筛选

    原文:WPF 精修篇 DataGrid 筛选 DataGrid也可以分组 但是用的地方不多 就没写 筛选还是可以的 比如Datagrid数据量比较大 要做数据筛选 贴码 <DataGrid x: ...

随机推荐

  1. MySql报错(持续更新)

    目录 MySql报错 1. 重复键报错1062- duplicate entry '0' for key 'xxx' 1.1 报错场景 1.2 报错原因 1.3 解决方法 1.4 具体举例 2. VS ...

  2. ES6-Proxy,代理

    proxy 代理 Es6 增强 对象和函数(方法)   Proxy用于修改某些操作的默认行为,即对编程语言层面进行修改,属于“元编程”, Proxy意思为“代理”,即在访问对象之前建立一道“拦截”,任 ...

  3. java web轻量级开发面试教程

    最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二 ...

  4. linux bash基础特性

    使用history命令,取得命令历史,当bash进程结束后,会把命令历史存放到文件中,下次开机还能看到命令历史. 定制history:通过设置环境变量,来定制history 环境变量$HISTSIZE ...

  5. Python 获取MD5加密值

    Python 获取MD5加密值方法封装 import hashlib def get_md5(s): """获取MD5加密值 :param s: 需要加密的字符串 :re ...

  6. Softmax用于手写数字识别(Tensorflow实现)-个人理解

    softmax函数的作用   对于分类方面,softmax函数的作用是从样本值计算得到该样本属于各个类别的概率大小.例如手写数字识别,softmax模型从给定的手写体图片像素值得出这张图片为数字0~9 ...

  7. 解决安装tensorflow-gpu失败:Command "python setup.py egg_info"failed with error code 10 in.....

    按照https://blog.csdn.net/shawroad88/article/details/82222811前几步安装. 又有新的报错如下: 再运行运行代码安装setuptools pip ...

  8. MongoDB增删改查表文档

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  9. 由异常:Repeated column in mapping for entity/should be mapped with insert="false" update="false 引发对jpa关联的思考

    由异常:Repeated column in mapping for entity/should be mapped with insert="false" update=&quo ...

  10. IT兄弟连 HTML5教程 CSS3揭秘 CSS常见的样式属性和值5

    CSS综合实例 在Web页面中经常使用栏目显示分类内容.本例将使用HTML和CSS结合编写一个分类栏目模型,用于演示前面介绍的CSS应用.通过使用独立的文件定义样式表,并在HTML文档中使用link标 ...