How to bind a control's property to another control's property?

48,594

Yes. You should be able to bind the stackpanel's IsEnabled to your button's Visibility property. However, you need a converter. WPF comes with a BooleanToVisibilityConverter class that should do the job.

<Window
  x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
  </Window.Resources>
  <StackPanel>
    <ToggleButton x:Name="toggleButton" Content="Toggle"/>
    <TextBlock
      Text="Some text"
      Visibility="{Binding IsChecked, ElementName=toggleButton, Converter={StaticResource BooleanToVisibilityConverter}}"/>
  </StackPanel>
</Window>
Share:
48,594
Jader Dias
Author by

Jader Dias

Perl, Javascript, C#, Go, Matlab and Python Developer

Updated on March 07, 2020

Comments

  • Jader Dias
    Jader Dias about 4 years

    I want that the SaveButton from my form to dissapear when the form is disabled. I do that this way:

    this.formStackPanel.IsEnabled = someValue;
    if(this.formStackPanel.IsEnabled)
    {
        this.saveButton.Visibility = Visibility.Visible;
    }
    else
    {
        this.saveButton.Visibility = Visibility.Collapsed;
    }
    

    Isn't there a way of binding those properties in the XAML? Is there a better way of doing that?

  • pasha
    pasha over 7 years
    If instead of a togglebutton, I have a custom control (lets say CustomControl) which has a togglebutton then can do the same thing except ElementName=CustomControl.togglebutton?