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 ...
随机推荐
- 打印从1到k之间的所有素数
问题分析:素数是指大于1且只能被它本身和1整除的数,根据定义可以从2开始对一个数取余数一直到它本身,若它有第三个整除数,则可以判定它不是素数.若使用这种方法,会浪费时间,我们可以判断2到这个数的算术平 ...
- 三种纯CSS实现三角形的方法
看到像上图这样的 tip 的小三角,你会怎么办? 切个图上去?恩,不错,简单,兼容性也一级棒,不但好控制,那点小东西也增加不了多少图片的大小.但有没有更好更讲究技巧的办法呢?哈哈,那必须有啊,而且还不 ...
- Apache Commons 工具类介绍及简单使用
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- VS2013/2012 下无法打开 源 文件“stdafx.h”的解决方法
VS2013/2012下代码一写上去保存就报错了,下方提示无法打开 源 文件“stdafx.h” 如图: 百度了一下,对于VS2010有这样的方法可以解决: 在项目属性中展开C/C++,选择常规,在附 ...
- ctrl+z的JAVA实现,借助了命令模式(command pattern)
前些天学习<<JAVA与模式>>,到命令模式时,随带给了一个CTRL+Z案例的实现,想来学习编程这么久,CTRL+Z还没有认真实现过. 因此,借助JAVA与模式里面的源代码,自 ...
- 【转】Android异常:that was originally added here
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 02-19 15:08:02.228: E/WindowManager(22172): Activity ...
- Material Design之TextInputLayout、Snackbar的使用
这两个控件也是Google在2015 I/O大会上公布的Design Library包下的控件,使用比較简单,就放在一起讲了,但有的地方也是须要特别注意一下. TextInputLayout Text ...
- java连接oracle的简单实例
连接oracle的时候,要导入oracle驱动的jar包. 连接的时候,有statement和preparedstatement两种,从代码中可以看出不同. example: package com. ...
- 监听器 listener 样例
1. 在web.xml 添加 <listener> <listener-class>listener.TestListener</listener-class> ...
- GDB反向调试 + 指令记录+函数历史记录
http://blog.chinaunix.net/uid-26941022-id-3199961.html b.c void fun(int a, int b){ int c; c=a+b; } v ...