MVVM模式应用 之为ApplicationBarIconButton 添加Command操作属性
在学习MVVM的过程中,总是会遇到挫折,一碰到就是花费好长时间去解决。。唉,不求量,只求质。
第一种(已经实践成功):
(1)http://bindableapplicationb.codeplex.com/ 去这个网址,下载项目吧。
接下来,我就需要在我的项目中添加命名空间了。
添加代码:
<bar:Bindable.ApplicationBar> <bar:BindableApplicationBar> <bar:BindableApplicationBarButton Text="添加大学" IconUri="Images/appbar.add.rest.png"/> </bar:BindableApplicationBar> </bar:Bindable.ApplicationBar>
先看看效果:
看到了吧。。和ApplicationBarIconButton的效果是一样的。
而且,还有ApplicationBarIconButton不能实现的东西。
<bar:Bindable.ApplicationBar> <bar:BindableApplicationBar> <bar:BindableApplicationBarButton Text="添加大学" IconUri="Images/appbar.add.rest.png" Command="{Binding ToAddPageCommand}"/> </bar:BindableApplicationBar> </bar:Bindable.ApplicationBar>
看到没有啊 。。。
然后,在MainViewModel.CS中添加如下代码
(1)添加以下属性和方法:
public RelayCommand ToAddPageCommand { get; set; } public void NavigateToAddUniversity() { University1 = University3; }
(2)在初始化函数MainViewModel()中添加一句:
ToAddPageCommand = new RelayCommand(()=>{ NavigateToAddUniversity(); });
为体会BindableApplicationBar.dll类库给我们带来的强大的功能,贴如下代码:
<bar:Bindable.ApplicationBar> <bar:BindableApplicationBar IsVisible="{Binding BarIsVisible}" IsMenuVisible="{Binding IsMenuVisible, Mode=TwoWay}" IsMenuEnabled="{Binding IsMenuEnabled}" ForegroundColor="{Binding ForegroundColor, Converter={StaticResource DoubleToColorConverter}}" BackgroundColor="{Binding BackgroundColor, Converter={StaticResource DoubleToColorConverter}}" BindableOpacity="{Binding Opacity}" Mode="{Binding Mode}" MenuItemsSource="{Binding MenuItems}" ButtonsSource="{Binding Buttons}"> <!--<bar:BindableApplicationBar.MenuItemTemplate> <DataTemplate> <bar:BindableApplicationBarMenuItem Text="{Binding Text}" Command="{Binding Command}" CommandParameter="{Binding CommandParameter}"/> </DataTemplate> </bar:BindableApplicationBar.MenuItemTemplate>--> <bar:BindableApplicationBarButton Text="{Binding IconButtonText}" IconUri="{Binding IconUri, FallbackValue=/Icons/Dark/appbar.add.rest.png}" IsEnabled="{Binding ButtonIsEnabled}" /> <bar:BindableApplicationBarButton Text="XAML Btn 2" IconUri="/Icons/Dark/appbar.next.rest.png" Command="{Binding TestCommand}" CommandParameter="{Binding TestCommandParameter}" /> <bar:BindableApplicationBar.MenuItems> <bar:BindableApplicationBarMenuItem Text="{Binding MenuItemText}" IsEnabled="{Binding MenuItemIsEnabled}" /> <bar:BindableApplicationBarMenuItem Text="XAML MnuIt 2" Command="{Binding TestCommand2}" CommandParameter="{Binding TestCommand2Parameter}" /> </bar:BindableApplicationBar.MenuItems> </bar:BindableApplicationBar> </bar:Bindable.ApplicationBar>
参考链接:
http://bindableapplicationb.codeplex.com/
MVVM模式应用 之为ApplicationBarIconButton 添加Command操作属性的更多相关文章
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
KnockOutJS学习系列----(一) 好几个月没去写博客了,最近也是因为项目紧张,不过这个不是借口,J. 很多时候可能是因为事情一多,然后没法静下来心来去写点东西,学点东西. 也很抱歉,突然看到 ...
- wp8使用mvvm模式简单例子
mvvm是silverlight/wpf下的mvc升华 通过一个简单的加法计算器例子来说明mvvm是什么 在设计界面完成设计之后,显示简单的布局,如下图: 然后来比较,传统的直接方式,mvc和mvvm ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...
- 【转】【WPF】MVVM模式的3种command
1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand 因为MVVM模式适合于WPF和SL,所以这3种模式中也有一些小差异,比如RelayCo ...
- MVVM模式的3种command总结[2]--RelayCommand
MVVM模式的3种command总结[2]--RelayCommand RelayCommand本来是WPF下面用的一种自定义的command,主要是它用到了事件管理函数,这个SL下面是没有的.不过这 ...
- MVVM模式的3种command总结[1]--DelegateCommand
MVVM模式的3种command总结[1]--DelegateCommand 查了不少资料,大概理清楚的就是有3种.当然类名可以自己取了,不过为了便于记忆和区分,还是和看到的文章里面用一样的类名. 1 ...
- WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参
原文:WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参 ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataC ...
- 【WPF】MVVM模式的3种command
原文:[WPF]MVVM模式的3种command 1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand 因为MVVM模式适合于WPF和SL, ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
随机推荐
- hdoj 2063 过山车【匈牙利算法+邻接矩阵or邻接表】
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- SSM拦截器应用
1.创建工具包 2.编写拦截器业务逻辑类容(在此为验证登录效果) @Override public void doFilter(ServletRequest req, ServletResponse ...
- java中如何使正在运行中的线程退出
终止线程的三种方法 有三种方法可以使终止线程. 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2. 使用stop方法强行终止线程(这个方法不 ...
- FM笔记
1.获取生产订单状态 CALL FUNCTION 'STATUS_TEXT_EDIT' EXPORTING client = sy-mandt objnr = p_objnr spras = sy-l ...
- wordpress主题制作常用基本的模板及说明
style.css : CSS(样式表)文件,一般包括主题声明和通用css样式代码 index.php : 主页模板,一般用来做网站的首页 header.php : Header模板,一般是所有页面的 ...
- OPENCV中滑动条的使用
//文中存在两种不同的图像的平滑类型.一类是彩色图像,还有一类是灰度图像.经证明,两种均能够 #include<cv.h> #include<highgui.h> #inclu ...
- codeblocks创建和使用静态库(C语言)
静态库 (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名 .dll)是不在link阶段整合进执行程序中的. DLL文件在执行阶段动态调用 下面 ...
- 节点类(CCNode)
节点与渲染树 回顾前面的介绍,我们已经知道了精灵.层和场景如何构成一个游戏的框架.精灵属于层,层属于场景,玩家与精灵互动,并导致游戏画面在不同场景中切换.把每个环节拼接在一起,我们得到了一个完整的关系 ...
- 【转】copy 和 mutablecopy (深拷贝和浅拷贝)
阅读本文之前首先了解copy与retain的区别,如果有不正确的地方望大家多多指教: copy与retain的区别: copy是创建一个新对象,retain是创建一个指针,引用对象计数加1.Copy属 ...
- jQuery 分页插件 jqPagination的使用
jqPagination 是一个简单易用的轻量级 jQuery分页插件,其使用了 HTML5 和 CSS3 技术来实现.此插件提供了几个参数设置选项,通过简单的配置即可生成分页控件.此外,它的外观样式 ...