当前位置: 首页 > wzjs >正文

郑州铭功路网站建设学做网站php

郑州铭功路网站建设,学做网站php,网站大全,建站特别慢wordpress一、MVVM的基本概念 MVVM的基本概念:Model、View、ViewModel 组件职责示例内容Model封装业务数据User类,包含姓名、年龄属性View负责UI呈现XAML界面,包含数据绑定ViewModel连接View和Model,处理视图逻辑MainViewModel包含命令和…

一、MVVM的基本概念

MVVM的基本概念:Model、View、ViewModel

组件职责示例内容
Model封装业务数据User类,包含姓名、年龄属性
View负责UI呈现XAML界面,包含数据绑定
ViewModel连接View和Model,处理视图逻辑MainViewModel包含命令和绑定属性

二、例子:

2.1.Model

  // Models/User.cspublic class User : INotifyPropertyChanged{private string _name;private int _age;public string Name{get => _name;set{_name = value;OnPropertyChanged(nameof(Name));}}public int Age{get => _age;set{_age = value;OnPropertyChanged(nameof(Age));}}public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged( string propertyName  ){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}

2.2 ViewModel

  // ViewModels/MainViewModel.cspublic class MainViewModel : INotifyPropertyChanged{private User _user = new User { Name = "张三", Age = 25 };public User User{get => _user;set{_user = value;OnPropertyChanged(nameof(User));}}// 命令定义public ICommand SaveCommand{get{return new RelayCommand(SaveUser,  CanSaveExecute);}}bool CanSaveExecute(){return true;}private void SaveUser(){MessageBox.Show($"保存成功:{User.Name}, {User.Age}");}public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged(string propertyName ){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}

2.3  ICommand (基本都是格式化的)

 public class RelayCommand : ICommand{private readonly Action _execute;private readonly Func<bool> _canExecute;public RelayCommand(Action execute, Func<bool> canExecute = null){_execute = execute;_canExecute = canExecute;}public bool CanExecute(object parameter){if (_canExecute == null){return true;}elsereturn _canExecute();}public void Execute(object parameter) => _execute();public event EventHandler CanExecuteChanged{add{if(_canExecute!=null){CommandManager.RequerySuggested += value;}                }remove{if (_canExecute != null){CommandManager.RequerySuggested -= value;}}           }}

2.4 调用

 public partial class Window1 : Window{//   public PersonViewModel m_PersonViewModel = new PersonViewModel();public MainViewModel model = new MainViewModel();public Window1(){InitializeComponent();DataContext = model;}
}
 <StackPanel Margin="15"><TextBox Text="{Binding User.Name,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"Margin="0,0,0,10"/><TextBox Text="{Binding User.Age, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"Margin="0,0,0,10"/><Button Content="保存" Command="{Binding SaveCommand}"Padding="10,5"/></StackPanel>
http://www.dtcms.com/wzjs/555450.html

相关文章:

  • wap网站制作怎么做福清做网站的公司
  • 做美食的视频网站有哪些wordpress自定义通栏
  • 南通移动网站建设专门做孕婴用品的网站
  • 社区门户网站建设方案有人在天琥设计学过吗
  • 北京建站公司网站网站制作方案有哪些
  • 广州网站建设技术wordpress去广告
  • 手机网站底部导航代码国家企业信息信用系统
  • 重庆忠县网站建设公司哪家好WordPress D8 5.1
  • 合肥网站建设网站建设标语文案
  • 阿里建站系统国外做网站公司能赚钱
  • 网站建设的实施方案怎么建立一个网站让百度搜到
  • 公众号的网站怎么做的揭阳网站建设揭阳
  • 一个公司网站设计需求西安网页公司
  • 查看网站主机有什么特点
  • 淄博网络公司做网站的电话seo推广系统
  • 太原网络营销网站网站设计的能力要求
  • 营销型网站设计特点长沙做企业网站推广的公司
  • 关于设计方面的网站图文广告培训班多少钱
  • 大网站设计计算机ui设计是什么
  • 付费下载网站源码网站软文得特点
  • 网站建设搭建是什么意思代理服务器地址是什么
  • 个人接做网站多少钱0基础学网站设计
  • 苏州大学网站建设上海网站商城建设
  • 做化验的网站舆情通
  • 西安网站建设软件网站开发公司挣钱吗
  • 成都市网站建设服务商网站查看空间商
  • 宣城做网站怎么样在网上推广
  • 织梦网站专题页面如何做华硕路由器wordpress
  • 做淘宝要用的网站美空间网站
  • 如何刷网站访问量wordpress 列表 插件