Visual Studio的MethMVVM
MethMVVM介绍:
Visual Studio Gallery是微软针对VisualStudio扩展提供的一种解决方案,在Visual Studio Gallery你能够找到各种不同主题的解决方案,而MethMVVM就是一种扩展,这个扩展方案根据名字也能大体猜出来是为了实现MVVM设定的,Visual Studio Gallery给出的定义为:Snippet for method creaion and MVVM proprties.根据文档解释发现其实这就是Visual Studio 上的Code Snipper,我们自己也可以封装,但是既然有人家已经针对MVVM模式扩展了这个Code Snipper,那我们没必要在自己去浪费时间去了。
MethMVVM的安装:
使用之前,把这个扩展安装到Visual Studio中去,安装步骤如下:首先选择工具下面的扩展与安装


在左边选择联系,在最右边搜索框中输入MethMVVM,点击搜索,会在中间的搜索结果框中显示所需的扩展方案,点击该搜索结果,安装完成后会自动重启Visual Studio,重启后就可以使用了!
MethMVVM的使用:
meth-public method(公共方法)
在Visual Studio的类中输入meth双击Tab显示代码为:
public int MethodName()
{
throw new NotImplementedException();
}
methp-private method(私有方法),用法入meth一样。
meth2-public method with two parameters(带两个参数的公共方法)
methp2-private method with two parameters(带有两个参数的私有方法)
meths-public static method(静态方法)
meths2-public static method with two parameters(带有两个参数的静态方法)
propmvvm-mvvm property(能够实现绑定通知的属性)
propall-generate typical property definition in C#(C#的完全属性写法)
安装了MethMVVM的扩展多了的也就是方法的定义和propmvvm,至于完全属性是在Visual Studio的Code Snipper中自带就有,而propmvvm的定义还是需要自己实现INotifyPropertyChanged接口的通知事件

这个OnPropertyChanged的方法还需要我们自己手动去实现,这里的实现感觉有点鸡肋了,实现入下
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
总结:
其实这个MethMVVM实现功能有限,还是作为一个扩展放到Visual Studio Gallery中去,并且以一篇文章的形式做了一个讲解,主要是由此能够了解Visual Studio中有很多现成的扩展,可以很方便的让我们去调用,不需要我们自己写很多代码去实现,并且扩展的源码我们也可以在CodePlex去找到,如果有使用起来能够方便我们Coding的,大家都能够分享一下,都能从中受益。
Visual Studio的MethMVVM的更多相关文章
- Visual Studio 2010的MSDN帮助文档离线使用
如果没有在安装vs过程中安装帮助,也可通过Visual Studio帮助菜单中的Manage Help Settings来对帮助进行设置或安装. 可以选择从磁盘安装内容,如果选择从磁盘安装可能会要求提 ...
- 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...
- Visual Studio Code 代理设置
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- Xamarin+Prism开发详解三:Visual studio 2017 RC初体验
Visual studio 2017 RC出来一段时间了,最近有时间就想安装试试,随带分享一下安装使用体验. 1,卸载visual studio 2015 虽然可以同时安装visual studio ...
- 关于Visual Studio 未能加载各种Package包的解决方案
问题: 打开Visual Studio 的时候,总提示未能加载相应的Package包,有时候还无法打开项目,各种提示 解决方案: 进入用户目录 C:\Users\用户名\AppData\Local\M ...
- Windows下Visual studio 2013 编译 Audacity
编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...
随机推荐
- C++转义字符 & keyword
转义字符: 换行符 \n 水平制表符\t 纵向制表符 \v 退格符 \b 回车符 \r 进纸符 \f 报警(响铃)符 \a 反斜线 \\ 疑问号 \? 单引號 \' 双引號 \" ...
- MyBatis之六:缓存
MyBatis 3中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置.默认情况下是没有开启缓存的,除了局部的session缓存,可以增强变现而且处理循环依赖也是必须的.要开启二级缓存,你需 ...
- 在WebClient中使用post[发送数据]
很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地.Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法 ...
- spring mvc 框架核心文档
http://docs.spring.io/spring-data/ Parent Directory - cassandra/ 01-Apr-2014 01:50 - commons/ 29-Jan ...
- ExpandableListView 箭头靠右
ExpandableListView 默认标示箭头是在左边的,当左边有图片时,不是太好看,想把它放在右边,这么简单的事可我折腾死了,还好给我找到了. 参照了以下链接: expandableListvi ...
- UNIX基础知识之信号
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 信号(signal)是通知进程已发生某种情况的 ...
- redis终于有比较大的进展了,redis3.0.1 稳定版本发布,支持集群。
原文地址:https://raw.githubusercontent.com/antirez/redis/3.0/00-RELEASENOTES Redis 3.0 release notes --[ ...
- QTextEdit 总结
关于Qt的富文本处理, 可以参考文档:Rich Text Processing 该文档有人翻译了一下(本来我想翻译- -!), 参考Rich Text Processing富文本处理 QTextEdi ...
- BootStrap2学习日记4---常用标签与样式
<small>:常常和h1标签一起搭配使用 如<h1>标题<small>小标题</small></h1> <abbr>:abbr ...
- 获取地理位置的html5代码
/** * 以下为html5代码,获取地理位置 */ function getLocation() { //检查浏览器是否支持地理位置获取 if (navigator.geolocation) { / ...