当前位置:  开发笔记 > 编程语言 > 正文

将XAML中的可见性绑定到Visibility属性

如何解决《将XAML中的可见性绑定到Visibility属性》经验,为你挑选了2个好方法。

我在互联网上看到了很多将布尔值绑定到XAML中控件的Visibility属性的示例.大多数好例子都使用BooleanToVisibiliy转换器.

我想在控件上设置Visible属性以绑定到代码隐藏中的System.Windows.Visibility属性,但它似乎不想工作.

这是我的XAML:


这是属性的代码:

private Visibility _actionsVisible;
public Visibility ActionsVisible
{
   get
   {
      return _actionsVisible;
   }
   set
   {
      _actionsVisible = value;
   }
}

在Window的构造函数中,我也有这个调用:

base.DataContext = this;

当我更新ActionsVisible或this.actions.Visibility时,状态不会传输.对可能出错的任何想法?



1> 小智..:

将您的属性更改为DependencyProperty.这将为您处理更新.

        public Visibility ActionsVisible
    {
        get { return (Visibility)GetValue(ActionsVisibleProperty); }
        set { SetValue(ActionsVisibleProperty, value); }
    }

    // Using a DependencyProperty as the backing store for ActionsVisible.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty ActionsVisibleProperty =
        DependencyProperty.Register("ActionsVisible", typeof(Visibility), typeof(FooForm));



2> Craig Sheare..:

我认为问题是WPF无法知道您的ActionsVisible属性已经更改,因为您没有通知事实.

您的类需要实现INotifyPropertyChanged,然后在ActionsVisible的set方法中,您需要使用ActionsVisible作为已更改的属性名称触发PropertyChanged事件.

希望这可以帮助...

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有