首页 > 其他分享 >WPF MVVM 学习理解

WPF MVVM 学习理解

时间:2023-11-29 15:17:54浏览次数:37  
标签:OnPropertyChanged set string MVVM MyCommond 理解 WPF public Name

<StackPanel>
    <TextBox Text="{Binding Name}"/>
    <TextBox Text="{Binding Title}"/>
    <Button Height="50" Command="{Binding ShowCommand}"/>
</StackPanel>

数据上下文绑定:

this.DataContext = new MainViewModel();

ViewModel:

 1 internal class MainViewModel : ViewModelBase
 2 {
 3     public MainViewModel()
 4     {
 5         ShowCommand = new MyCommond(Show);
 6     }
 7     private string name;
 8     public string Name 
 9     {
10         get { return name; }
11         set 
12         {
13             name = value; 
14             OnPropertyChanged();
15         } 
16     }
17     private string title;
18     public string Title
19     {
20         get { return title; }
21         set
22         {
23             title = value;
24             OnPropertyChanged();
25         }
26     }
27     public MyCommond ShowCommand { get; set; }
28 
29 
30     public void Show()
31     {
32         Name = "按钮";
33         Title = "标题";
34         MessageBox.Show(Name);
35     }
36 
37 }

ViewModelBase:

1 internal class ViewModelBase : INotifyPropertyChanged
2 {
3     public event PropertyChangedEventHandler PropertyChanged;
4     public void OnPropertyChanged([CallerMemberName]string propertyName = "")
5     {
6         PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
7     }
8 }

绑定Command:

 1     internal class MyCommond : ICommand
 2     {
 3         Action executeAction;
 4         public MyCommond(Action action) 
 5         {
 6             executeAction = action;
 7         }
 8         public event EventHandler CanExecuteChanged;
 9 
10         public bool CanExecute(object parameter)
11         {
12             return true;
13         }
14 
15         public void Execute(object parameter)
16         {
17             executeAction();
18         }
19     }

 

标签:OnPropertyChanged,set,string,MVVM,MyCommond,理解,WPF,public,Name
From: https://www.cnblogs.com/chao-ye/p/17864843.html

相关文章

  • WPF应用开发之附件管理
    在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和控件的一些封装处理界面效果,供大家参考斧正。1、回顾附件管理,Winform端以及VueElement......
  • 深入理解 Linux 中的 I/O 重定向与管道
    在Linux系统中,I/O重定向与管道是非常有用的功能,可以帮助我们更好地管理命令行下的输入和输出。本文将介绍I/O重定向和管道的基本概念以及在实际应用中的用法。1.I/O重定向I/O重定向是一种将命令的输入或输出重定向到指定位置的技术。在命令行中,我们可以使用以下符号来实......
  • 一些关于python装饰器的理解
    装饰器:给现有的模块增添新的小功能,可以对原函数进行功能扩展,而且还不需要修改原函数的内容,也不需要修改原函数的调用例:已有函数ABC想在其基础上再加上一个小功能Xdefdeco(A): defwrapper(*args,**kwargs): res=A(*args,**kwargs) returnres......
  • VUE与WPF树形控件的区别与使用
    VUE:树形结构显示,主要在数据查询的时候把数据拼成树形结构的数据,注意:VUE中树形结构体必须要有children,此对象必须是list类型WPF:树形结构显示,是把所有的数据查询到,然后WPF中的控件通过ID和PID来自动把数据呈现成树形结构 ......
  • wpf 封装 时间日期 双向绑定 输入框 控件
    简单封装一个时间日期输入框DateTimePicker.xaml<UserControlx:Class="FullApp5DateTimePicker.Modules.ModuleName.Views.DateTimePicker"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http......
  • P3879 TJOI2010 阅读理解
    P3879TJOI2010阅读理解基本想法开一个map组成的数组,然后每篇文章分配一个map。查找的时候在每次都跑一遍。显然MLE了。改进既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个map<string,vector<int>>。但是同一篇文章会出现多个单词,需要去重,不......
  • python中全局变量和局部变量作用域理解
    一:描述python中全局变量和局部变量作用域理解 二:回答1. 局部变量不能修改全局变量局部变量只作用于方法内,无法修改全局变量1#全局变量city2city="上海"34defmod_city():5#局部变量city6city="深圳"7print(city)89......
  • python中lambda函数如何理解
    一:问题python中lambda函数如何理解? 二:回答如下所示:defadd(a,b):returna+bdata=lambdaa,b:a+bif__name__=="__main__": print(add(3,4)) print(data(3,4))>>>运行结果如下:>>>7>>>7这里lambda函数,可以这样理解:lambda替代了上面的d......
  • npm学习(十五)之理解npm、nvm、nodejs之间的关系
      nvmnvm:nodeJs版本管理工具,管理nodejs版本和npm版本,使用nvm安装nodejs时会将npm一起安装下来nodejsnodeJs: 一种高效的JavaScript运行环境npmnpm:是随同nodeJs一起安装的包管理工具,npm管理对应nodeJs的第三方插件  常见的使用场景有以下几种:  .允许用户从......
  • WPF数据绑定对象Binding中的辅助属性
    数据绑定方向——ModelnamespaceSystem.Windows.Data{publicenumBindingMode{TwoWay=0,OneWay=1,OneTime=2,OneWayToSource=3,Default=4}}TwoWay=0,绑定的双方,值可以相互传递OneWay=1,绑定......