Bind visibility property to a variable

You don’t need to make any converter.

Add a binding to a Visibility property for the border:

<Border x:Name="Border1" Visibility="{Binding Visibility}"    BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="21" Margin="229,164,0,0" VerticalAlignment="Top" Width="90" Opacity="0.5">
    <Grid>
        <Label Content="test"/>
    </Grid>
</Border>

And then create the Visibility property in your ViewModel:

private Visibility visibility;
public Visibility Visibility
    {
        get
        {
            return visibility;
        }
        set
        {
            visibility = value;

            OnPropertyChanged("Visibility");
        }
    }

Now you can set Visible or Hidden to your Visibility property as follows:

Visibility = Visibility.Visible;
// or
Visibility = Visibility.Hidden;

The Visibility enum is located in System.Windows namespace, so your ViewModel has to include using System.Windows;.

Leave a Comment