mvvm command的使用案例
主界面如下:
前台代码:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel x:Name="stackPanel" Margin="20">
<Button x:Name="button1" Content="命令测试" />
<TextBox x:Name="textBoxA" />
</StackPanel>
</Grid>
</Window>
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private RoutedCommand clearCmd = new RoutedCommand("Clear", typeof(MainWindow));
public MainWindow()
{
InitializeComponent();
this.button1.Command = clearCmd;
this.clearCmd.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt));//使用快捷键
// 指令命令目标
this.button1.CommandTarget = this.textBoxA;
// 创建命令绑定
CommandBinding cb = new CommandBinding();
cb.Command = this.clearCmd;
cb.CanExecute += cb_CanExecute;
cb.Executed += cb_Executed;
this.stackPanel.CommandBindings.Add(cb);
}
void cb_Executed(object sender, ExecutedRoutedEventArgs e)
{
this.textBoxA.Clear();
e.Handled = true;
}
void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (string.IsNullOrEmpty(this.textBoxA.Text))
e.CanExecute = false;
else
e.CanExecute = true;
e.Handled = true;
}
}
}
mvvm command的使用案例相关推荐
- 使用WPF+MVVM模式的小案例
WPF+MVVM模式的小案例案例主要的目录结构 下面一步一步建立整个小程序的目录和相应的代码程序. 1.打开VS, 新建项目WPFDemo.Client.CustType(自己可以写自己的程序名称,这 ...
- vue.js MVVM模式介绍及案例
1.vue.js是什么: Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视 ...
- [Linux] Linux相关系统常用命令command使用及案例
Linux常用命令及案例分析 基本使用类 打开pdf, 表格,word 文档 基本使用类 Linux常用命令包括: 查看硬件信息命令:ifconfig free fdisk ethtool mii-t ...
- 【Android】Android安卓架构MVC、MVP、MVVM之间的区别和联系(图解+案例+源码)
https://github.com/SETANDGET/AndroidArchitectureDemo 代码 一.问题背景 二.Android安卓架构MVC.MVP.MVVM 1.MVC(Model ...
- [最全]Android安卓架构MVC、MVP、MVVM之间的区别和联系(图解+案例+源码)
一.问题背景 博主最近在准备春招面试中介绍自己简历中Android项目的MVP架构,但是博主发现若自身不彻底弄懂Android安卓架构MVC.MVP.MVVM之间的区别和联系,博主将无法准确地向面试官 ...
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...
- Oracle OEM 重建 及 案例 说明
原文自:http://blog.csdn.net/tianlesoftware/article/details/4702978 一.手工重建EM Oracle 的gridcontrol 由两部分组成: ...
- MVVM与DataBinding简单使用
MVVM与DataBinding简单案例 一.MVVM 1.MVVM是什么 MVVM(Model–View–Viewmodel)是一种软件架构模式. M----->Model层:请求的原始数据 ...
- Linux基本常用命令大全(附案例实战)
目录 1.基本命令 1.1 命令入门 1.1.1 命令提示符详解 1.1.2 命令格式 1.2 获取命令的帮助 1.2.1 查手册&搜索引擎 1.2.2 man 1.2.3 命令 --help ...
最新文章
- 基于 WPF + Modern UI 的 公司OA小助手 开发总结
- 业务团队如何统一架构设计风格?
- 软件开发者面试百问答案,老紫竹研究室出品(已经有64个)
- spring+ibatis+注解开发
- 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
- 修改显卡型号软件_电脑一键修改任意CPU型号方法 装X新技能!
- 芝加哥大学终身教授:自然科学与社会科学的真正区别
- RedHat7如何配置新网卡
- 北京某数据中心全年用水量分析
- Java excel添加水印
- matlab中imresize()函数用法
- 企业实战zabbix(7)--结合qqmail(报警信息发给qq用户)
- 《激光杂志》投稿经验
- 【计算机网络】——通信协议综述(网络协议、网络分层、ifconfige命令行、DHCP与PXE)
- 【proc】使用proc_create_data函数在proc下创建节点
- VirtualBox Host Only Adapter Error VERR_INTNET_FLT_IF_NOT_FOUND
- linux下otrs安装rpm,从源码安装OTRS(Linux、Unix)
- 三相逆变 单相/三相逆变器 SPWM
- 煤炭行业智能SRM系统:实现供应商可视化管理,提高企业采购效益
- 在Java web模板的上进行编写