绑定到Element的Visibility值

时间:2010-04-02 16:19:54

标签: wpf binding

我有一个可检查的DropDownButton和一个Grid。

我想将Button的IsChecked参数与网格的可见性值绑定。

如果(可见性==可见)IsCheked = true

我试过这样做:

IsChecked="{Binding ElementName=UsersDockWindow, Path=IsVisible}"

但它不起作用,因为IsVisible是readOnly属性。

2 个答案:

答案 0 :(得分:4)

使用BooleanToVisibilityConverter。以下是how to do the binding使用该转换器的示例。

答案 1 :(得分:1)

创建一个VisibilityToBooleanConverter并在绑定中使用它:

public class VisibilityToBooleanConverter : IValueConverter
{
  public object Convert(object value, ...)
  {
    return (Visibility)value == Visibility.Visible;
  }
}

在您的XAML中:

<Window.Resources>
  <!-- assuming the local: xmlns is mapped to the appropriate namespace -->
  <local:VisibilityToBooleanConverter x:Key="vbc" />
</Window.Resources>

IsChecked="{Binding Visibility,
                    ElementName=UsersDockWindow,
                    Converter={StaticResource vbc}}"