码迷,mamicode.com
首页 > 移动开发 > 详细

Windows Phone 8.1中AppBarToggleButton的绑定问题

时间:2015-05-31 21:38:43      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

在WP8.1中,应用栏按钮已经可以支持绑定了,而且提供了一种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}" />

这样就可以同步属性的变化了。

Windows Phone 8.1中AppBarToggleButton的绑定问题

标签:

原文地址:http://www.cnblogs.com/yanxiaodi/p/4542663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!