#495 – Binding to a Visibility Property Without Using a Value Converter
February 15, 2012 1 Comment
You can use a value converter to convert a string value to a value of type System.Windows.Visibility, allowing data binding to a Visibility property. You can also just set a Visibility property directly to a string, avoiding the need for a value converter.
In the example below, we bind to the Content property of a ComboBoxItem, which we access through the SelectedValue property of a ComboBox. Since Content contains a string, the binding to Visibility works without a conversion.
<StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <Label Content="Snoopy" Margin="3" Background="BurlyWood"/> <Label Content="Waldo" Margin="3" Background="Thistle" Visibility="{Binding ElementName=cboVisibility, Path=SelectedValue.Content}"/> <Label Content="Dagwood" Margin="3" Background="LightGreen"/> </StackPanel> <ComboBox Name="cboVisibility" HorizontalAlignment="Center" SelectedIndex="0"> <ComboBox.Items> <ComboBoxItem Content="Visible"/> <ComboBoxItem Content="Collapsed"/> <ComboBoxItem Content="Hidden"/> </ComboBox.Items> </ComboBox> <Label Content="Select visibility of middle Label" HorizontalAlignment="Center"/> </StackPanel>