首页 > 其他分享 >LYT-WPF-MVVM框架中的INotifyPropertyChanged

LYT-WPF-MVVM框架中的INotifyPropertyChanged

时间:2023-06-01 12:22:28浏览次数:40  
标签:LYT fisrtname string MVVM lastname WPF public INotifyPropertyChanged

参考文档:WPF MVVM框架中的INotifyPropertyChanged - 知乎 (zhihu.com)

INotifyPropertyChanged 接口用于通知视图或 ViewModel 绑定哪个属性无关紧要;它已更新。

让我们举个例子来理解这个接口。以一个 WPF 窗口为例,其中共有三个字段:名字、姓氏和全名。在这里,名字和姓氏文本框是可编辑的。因此,根据名字和姓氏的变化,我们必须自动更新全名。

使窗户设计图

 WPF 窗口的 XAML 代码如下

<Window x:Class="MVVM_INotifyPropertyChanged.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow">  
    <Grid Width="400" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Stretch" Margin="20">  
        <Grid.RowDefinitions>  
            <RowDefinition Height="40" />  
            <RowDefinition Height="40" />  
            <RowDefinition Height="40" /> </Grid.RowDefinitions>  
        <Grid.ColumnDefinitions>  
            <ColumnDefinition Width="90" />  
            <ColumnDefinition/> </Grid.ColumnDefinitions>  
        <Label Grid.Row="0" Grid.Column="0" Content="First Name : "></Label>  
        <Label Grid.Row="1" Grid.Column="0" Content="Last Name : "></Label>  
        <Label Grid.Row="2" Grid.Column="0" Content="Full Name : "></Label>  
        <TextBox Grid.Row="0" Grid.Column="1"></TextBox>  
        <TextBox Grid.Row="1" Grid.Column="1"></TextBox>  
        <TextBox Grid.Row="2" Grid.Column="1"></TextBox>  
    </Grid>  
</Window>  
View Code

现在,我们创建一个模型,它包含一个类调用人,它有3个属性“FirstName”,“LastName”,“FullName”。

public class Person {  
    private string _fisrtname;  
    public string FirstName {  
        get {  
            return _fisrtname;  
        }  
        set {  
            _fisrtname = value;  
        }  
    }  
    private string _lastname;  
    public string LastName {  
        get {  
            return _lastname;  
        }  
        set {  
            _lastname = value;  
        }  
    }  
    private string _fullname;  
    public string FullName {  
        get {  
            return _fisrtname +" "+_lastname; ;  
        }  
        set {  
            _fullname = value;  
        }  
    }  
    public Person() {  
        _fisrtname = "Nirav";  
        _lastname = "Daraniya";  
    }  
}  
View Code

 

标签:LYT,fisrtname,string,MVVM,lastname,WPF,public,INotifyPropertyChanged
From: https://www.cnblogs.com/ViolinHuang/p/17448588.html

相关文章

  • mvvm
    mvvmmvvm的工作原理vue的版本当前,vue共有3个大版本,其中:2.x版本的vue是目前企业级项目开发中的主流版本3.x版本的vue于2020-09-19发布,生态还不完善,尚未在企业级项目开发中普及和推广1.x版本的vue几乎被淘汰,不再建议学习与使用总结:3.x版本的vue是未来企业级项目开发的趋势......
  • WPF 行为
    一、简介行为是一类事物的共同特征,可以向用户界面控件添加功能,而无需将其子类化。功能是在行为类中实现的,并附加到控件上,就像它本身就是控件的一部分。比如在鼠标进入/离开控件时,表现出不同的现象;给TextBox添加水印等二、使用2.1 例:publicclassFloatBehavior:Be......
  • WPF全局样式
    WPF全局样式Theme目录下建立Style.xaml文件  <ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><StyleTargetType="......
  • WPF窗体右上角叉叉退出应用程序
    WPF窗体右上角叉叉退出应用程序 WPF窗体右上角叉叉退出应用程序记得xaml里的Window标签响应Closing事件 privatevoidWindow_Closing(objectsender,System.ComponentModel.CancelEventArgse){if(MessageBox.Show("是否确认退出?","温......
  • WPF中的密码框
    WPF中的密码框XAML文件<PasswordBoxName="PasswordBox"Margin="5"Padding="5"PreviewKeyDown="Txtpassword_PreviewKeyUp"/> 后台代码:IntPtrp=System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.Password......
  • LYT-WPF-基础-布局-Canvas面板
    已亲测!ZIndex实例有修改之处!!!本文转自:WPF教程五:布局之Canvas面板-.NET开发菜鸟-博客园(cnblogs.com),感谢~~Canvas:画布面板画布,用于完全控制每个元素的精确位置。他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图面。使用Canvas,必须指定一个子元素的位置(相对......
  • LYT-WPF-基础-布局-WrapPanel面板
    已亲测!本文转自:WPF教程三:布局之WrapPanel面板-.NET开发菜鸟-博客园(cnblogs.com),感谢~~WrapPanel:环绕面板    WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行。    ......
  • LYT-WPF-基础-布局-StackPanel面板
    已亲测!本文转自:WPF教程二:布局之StackPanel面板-.NET开发菜鸟-博客园(cnblogs.com),感谢~~应用程序界面设计中,合理的元素布局至关重要,它可以方便用户使用,并将信息清晰合理地展现给用户。WPF提供了一套功能强大的工具-面板(Panel),来控制用户界面的布局。你可以使用这些面板控件......
  • WPF RichTextBox 过滤中文不生效的问题
    WPFRichTextBox过滤中文不生效的问题1.问题使用系统自带的OnPreviewTextInput事件,过滤用户输入时,可以在OnPreviewTextInput中利用e.Handled=true过滤英文和数字等的输入,但是无法过滤中文字符的录入。2.解决方法不使用系统的PreviewTextInput事件,而是调用TextCompositionMa......
  • 界面组件Telerik UI for WPF可轻松实现直方图,让数据可视化更简单
    TelerikUIforWPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UIforWPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成VisualStudio工具箱中。TelerikUIforWPF|下载试用TelerikUI......