Windows Phone 7: MVVM之命令绑定

5月21号有幸去望京的微软大厦做了题为"Windows Phone 7 中的MVVM架构"的技术演示,现将演示中提到的两种命令绑定方式再谈一下。演示中使用了如下图所示的demo:

 

  

 

方式1: ApplicationBarButton的命令绑定

 

ApllicationBarButton 本身不提供Command属性供绑定命令使用,但是Prism for Windows Phone 7中提供了一个behavior ApplicationBarButtonCommand可用于命令邦定:

 

首先应用程序需要引用如下两个dll:

Microsoft.Practices.Prism.Interactivity.dll (来自Prism for windows phone)

System.Windows.Interactivity.dll (来自Blend for Windows Phone sdk)

 

Xaml中引用两个dll如今下:

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:pi="clr-namespace:Microsoft.Practices.Prism.Interactivity;assembly=Microsoft.Practices.Prism.Interactivity"

 

命令绑定代码如下:

 

 

其中ApplicationBarIconButtonCommand是通过ButtonText的值与ApplicationBarButton建立关联的

 

方式2:自定义attached behavior

 

Silverlight for Desktop中的ButtonBase控件是直接支持命令绑定的,他们提供了一个Command属性。Silverlight for Windows Phone 目前的版本上Button控件是没有Command属性的,那其他控件就更不支持了。实现命令绑定的方法就是以前的blog曾多次介绍过的Silverlight中的attached behavior .

 

在demo中使用了一个来自Windows Phone toolkit的 ToggleSwitch控件,下面是实现该控件的命令绑定代码:

 

首先需要自定义一个attached behavior可用来扩展ToggleSwitch控件使之支持命令绑定:

 

以上代码通过订阅ToggleSwith的Checked与Unchecked事件,来触发ToggleSwitch控件所绑定的命令,并传递相应参数。所以此类没有单独实现CommandParameter属性,如果你的命令绑定需要用到参数绑定,在此类上实现一个类似Command的CommandParameter依赖属性即可。

 

Xaml中使用命令绑定如下:

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值