原文: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. Java 基础复习 -- Enum 类

    一.枚举类基本语法 在 Java SE5 中添加了一个看似很小的特性,即 enum 关键字,它使得我们在需要群组并使用枚举类型集时,可以很方便的处理. 所有的 enum 都继承自 java.lang. ...

  2. Class文件结构-练习题1

    package org.fenixsoft.clazz; public class TestClass { private int m; public int inc() { return m + 1 ...

  3. Delphi 调用C# 编写的DLL方法

    近来,因工作需要,必须解决Delphi写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行:    编写C#dll的方法都一样,首先在vs2005中创建一个“ ...

  4. Tesseract.js 一个几乎能识别出图片中所有语言的JS库

    Tesseract.js 一个几乎能识别出图片中所有语言的JS库. 官网:http://tesseract.projectnaptha.com/ git:https://github.com/napt ...

  5. JS---part2课程介绍+part1复习

    part1复习 JavaScript分三个部分: 1. ECMAScript标准----JS基本的语法 2. DOM:Document Object Model 文档对象模型 3. BOM:浏览器对象 ...

  6. 2019QM大作业2-weyl半金属Landau Level

    目录 说明 for cnblog QM大作业2--weyl半金属的Landau Level \(\boldsymbol{Abstract}\) 说明 Landau Level 自旋与pauli mat ...

  7. Geoserver发布服务

    Geoserver发布服务的数据源很多样化 在数据存储中选择要发布的数据来源,这里以POSTGIS为例 1. 2.如果成功,就会读取出库里面的表,你可以在这里添加图层,发布服务 3.点击发布,进行服务 ...

  8. Android View的background和padding

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/181 最近在做一个需求,是对im聊天消息设置气泡背景,之前 ...

  9. gitlab忘记密码如何重置

    gitlab web登入密码忘记以后可以用如下方式修改密码shell>cd /home/git/gitlabshell> su gitshell>bundle exec rails ...

  10. crontab -e 报错(E518: Unknown option: foldenable)

    crontab 默认编辑器为vi,不支持foldenable #crontab -e Error detected while processing /root/.vimrc: line : E518 ...