wpf绑定--学习笔记2

怎么实现一个绑定?一般的模式如下:

  • 定义一个viewMode类,派生自INotifyPropertyChanged。这个类是对view而言的,界面----数据。
  • 这个类中应该有对于于view中的数据的字段。
 private string _bindData = "aaa";
  • 同时还应该有对应于字段的属性,在XAML中的绑定部分就是绑定这个字段。
  public string BindData
        {
            get { return _bindData; }
            set
            {
                _bindData = value;
                OnPropertyChanged("BindData");
            }
        }

  这样当数据改变的时候,就是调用OnPropertyChanged方法。

  • 实现接口中的成员,INotifyPropertyChanged.
  • 新建一个方法:OnPropertyChanged;

    private void OnPropertyChanged(string propertyName)
            {
                PropertyChangedEventHandler handler = this.PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(propertyName));
                }
            }
    PropertyChangedEventHandler 是一个委托。
    PropertyChangedEventArgs:保存消息的参数,派生自EventArgs,所有的evnet消息参数都派生于此。
    handler(this, new PropertyChangedEventArgs(propertyName));调用这个函数的时候会自动更新界面上与其绑定的控件的值。

其对应的XAML:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <TextBlock  Text="{Binding BindData, Mode=TwoWay}"></TextBlock>
        <Button Name ="textBox" Content="Btn1"  Margin="5" Command="{Binding ClickCommand}"></Button>
    </StackPanel>
</Window>
时间: 2024-10-27 11:04:33

wpf绑定--学习笔记2的相关文章

WPF基础学习笔记(一)Dependency Object 和 Dependency Property

.依赖属性是WPF个人觉得对精彩和最有特色的部分.所以特地先拿出来. 首先要实现Dependency Property 则必须要继承Dependency Object.如果看下WPF的基础控件其实都间接或者直接继承Dependency Object,这点规律性我在后面再做规律陈述. 首先Dependency Object 我搬下书的描述 Only the thread that the Dispatcher was created on may access the DispatcherObje

WPF 基础学习笔记

学习笔记: 对于勾选框的选择全部先显示到textbox中. this.LengthText.Text +=((CheckBox)sender).Context; 加一个功能Reset button功能:点击以后,把多个checkbox都变为非勾选.可以这么写: dropdown和combobox互动:选择finish combobox内容,notetext文本框显示相应内容. dropdown_selectionChanged 效果: 那么怎么在WPF执行窗体加载的时候给予Notetext文本框

WPF的学习笔记(1) -- (积累自2016年5月1日 至 2016年6月1日)

敬告读者:因为是事件驱动模式的高速学习,高速学习意味着,不系统,不科学,不合逻辑,不一定正确.所以要是有不对的地方,页面下面留言给我,跪谢! 背景介绍: 最近在公司的开发工作中,接手了从别的公司交代过来的代码巨怪,其中主要的技术有 WPF,控制反转框架Spring.net,SqlMap(有点像是ibatis.net),Remoting,作业调度框架Quarz,我们的工作,是把这只怪兽,敲碎,重组并且优化,目标暂时是重构成WebAPI底层和WPF界面两个部分,下面是我学习WPF的过程中,留下的一些

《深入浅出WPF》学习笔记之深入浅出话Binding

Binding作为数据的桥梁,它的两端分别是Binding的源(Source)和目标(Target),用来把Source中的数据送到Target中,并把在Target中的改变返回到Source.一般情况,Binding的源是逻辑层的对象,目标是UI层的控件对象. Binding的基本使用方法 如果想让作为数据源的对象在发生更改时自动显示到界面上,数据源的对象需要实现INotifyPropertyChanged接口.设置绑定时需要指定绑定到数据源的哪个属性,这个属性称为Binding的路径Path

《深入浅出WPF》 学习笔记

<深入浅出WPF> 序言 1. 什么是WPF    2. 为什么要学习WPF 第一章 XAML概览 1. XAML是什么? 2. XAML有哪些优点 第二章 从零起步认识XAML 1. 新建WPF项目 2. 剖析最简单的XAML代码 第三章 系统学习XAML语法 1. XAML文档的树形结构 2. XAML中为对象属性赋值的语法 2.1 使用标签的Attribute为对象属性赋值 2.2 使用TypeConverter 2.3 属性元素 2.4 标记扩展(Markup Extensions)

【WPF】学习笔记(二)——依旧是一个电子签名板

这篇博客呢,主要谈谈在实现电子签名功能中踩过的几个坑:1.System.BadImageFormatException异常:2.无法加载DLL“###.dll”,: 找不到指定的模块. (异常来自 HRESULT:0x8007007E):3.wpf获取控件句柄. 如果你想了解如何在wpf中使用InkCanvas实现一个类似于签名板(涂鸦板系列)的功能,请参考我的上一篇博客. 再扯点题外话,写这篇博客的很大一部分原因是InkCanvas版本的签名板被否决了.究其原因呢,是这个签名板将用于触摸屏上的

WPF基础学习笔记整理 (一)

基础知识: WPF:Windows Presentation Foundation,用于Windows的现代图形显示系统: WPF用于编写应用程序的表示层: 引入“内置硬件加速”和“分辨率无关”: Silverlight是WPF的一个子集,是WPF的“网络版”(WPF/E): WPF的开发理念:“数据驱动”,数据驱动UI,数据第一,空间第二: 数据与界面之间的桥梁是Data Binding: MVVM:Model-View-ViewModel: XMAL:Extensible Applicati

【WPF】学习笔记(一)——做一个简单的电子签名板

参加实习(WPF)已经有两个多周的时间了,踩了一些坑,也算积累了一些小东西,准备慢慢拿出来分享一下.(●'?'●) 这次呢就讲讲一个简单的电子签名板的实现. 先上张图(PS:字写得比较丑,不要太在意哈): 1.任务目标 最基本的需求:1.签名功能 2.清除签名 3.保存签名(让用户选择文件夹.签名保存为PNG格式的图片) 尝试额外功能:1.Ctrl + Z实现撤销功能 2.Ctrl + Y实现重做功能 3.保存签名后打开文件位置并选中文件 2.搞事情 1)UI方面 如图,总体来说,一个InkCa

WPF基础学习笔记整理 (九) 资源

基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictionary. ResourceDictionary在保存资源时,会将资源转换为object类型.XAML编译器能根据标签的Attribute自动识别资源类型,而C#中则需要我们介入转换. WPF资源网站:http://wpf.codeplex.com/ StaticResource是在程序载入内存时对