Windows Phone 8.1中AppBarToggleButton的绑定问题
2015-05-31 21:02
387 查看
在WP8.1中,应用栏按钮已经可以支持绑定了,而且提供了一种AppBarToggleButton类型,相当于一种开关按钮,这种按钮有一个属性IsChecked,标记是否为选中状态。
于是想当然的,将IsChecked绑定到某个属性上,并设置为双向绑定。结果却发现,不起作用,该属性变化时,无法通知AppBarToggleButton的IsChecked属性进行更改。
于是写了一个扩展属性来实现这个目的,代码如下:
使用的时候这样绑定:
这样就可以同步属性的变化了。
于是想当然的,将IsChecked绑定到某个属性上,并设置为双向绑定。结果却发现,不起作用,该属性变化时,无法通知AppBarToggleButton的IsChecked属性进行更改。
于是写了一个扩展属性来实现这个目的,代码如下:
public class ToggleButtonProperties { public static readonly DependencyProperty IsCheckedProperty = DependencyProperty.RegisterAttached("IsChecked", typeof(bool), typeof(ToggleButtonProperties), new PropertyMetadata(false, OnChanged)); public static bool GetIsChecked(DependencyObject obj) { return (bool)obj.GetValue(IsCheckedProperty); } public static void SetIsChecked(DependencyObject obj, bool value) { obj.SetValue(IsCheckedProperty, value); } private static void OnChanged(DependencyObject o, DependencyPropertyChangedEventArgs args) { ToggleButton tb = o as ToggleButton; if (null != tb) tb.IsChecked = (bool)args.NewValue; } }
使用的时候这样绑定:
<AppBarToggleButton Icon="Comment" Label="评论" controlHelper:ToggleButtonProperties.IsChecked="{Binding IsShowComments}" Command="{Binding CommandNavToComments}" />
这样就可以同步属性的变化了。
相关文章推荐
- android.graphics.Camera实现图像的旋转、缩放
- Android---51---加入多线程进行Socket通信
- Android的ExpandableListView-android学习之旅(二十八)
- Android的ExpandableListView-android学习之旅(二十八)
- Android的ExpandableListView-android学习之旅(二十八)
- Android文字转语音
- Android-Activity状态保存
- Android 2D Graphics学习(二)、Canvas篇2、Canvas裁剪和Region、RegionIterator 分类: Android基础知识学习
- android Graphics(三):区域(Range)
- android Graphics(四):canvas变换与操作
- 【Android】利用Java代码布局,按钮添加点击事件
- Android NDK 运行错误:java.lang.UnsatisfiedLinkError: Couldn't load XXX indLibrary returned null
- Unity3d查找游戏对象的方法
- android 读取JSON格式文件
- Android从零单排之签名打包
- 马尔代夫中文离线地图App上线
- webview知多少?
- 华欣中文离线地图App上线
- 芭堤雅中文离线地图App上线
- 象岛中文离线地图App上线