<
MenuItem x:Name="PeersMenuItem" Header="Peers" IsChecked="True"><
MenuItem.Triggers><
Trigger Value="True" Property="MenuItem.IsChecked"><
Setter TargetName="PeersControl" Property="UIElement.Visibility" Value="Visible"/></
Trigger><
Trigger Value="False" Property="MenuItem.IsChecked"><
Setter TargetName="PeersControl" Property="UIElement.Visibility" Value="Collapsed"/></
Trigger></
MenuItem.Triggers></
MenuItem>The XAML compiles, but when attempting to load the component the run-time complains that Visible is not a valid value for property Visibility.I do not know if this scenario is supported, but it would be very useful.

Problem with Trigger / Setter
RibTickler
2) do something like this:
<Window.Resources>
...
<local:BoolToVisConverter x:Key="myVisConverter"/>
...
</Window.Resources>
then in the markup for the UI:
<CheckBox x:Name="foo">Check Me</CheckBox>
<Button Visibility="{Binding Path=IsChecked,ElementName=foo,Converter={StaticResource myVisConverter}">Click Me</Button>
dean gross
1) If there is no default converter why does this work in templates There are many templates that control the visibility of elements using triggers that are very similar. The only difference is that I am not in a template, but in the main element tree.
2) How do I hook up my converter so it is used from XAML
Michael
BFDS.BIZ
another approach is to have one class and pass as a parameter an operation:
"POSITIVE_HIDDEN", "POSITIVE_COLLAPSED", "NEGATIVE_HIDDEN", "NEGATIVE_COLLAPSED" and do the right thing from there.
public class YBoolToVisibilityConverter : IValueConverter
{
public object Convert( object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture )
{
return System.Convert.ToBoolean(value) Visibility.Visible :
(((string) parameter) == "Hidden" Visibility.Hidden : Visibility.Collapsed);
} public object ConvertBack( object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture )
{
return null;
}
}
public class YInverseBoolToVisibilityConverter : IValueConverter
public object ConvertBack( object value, Type targetType, object parameter,{
public object Convert( object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture )
{
return System.Convert.ToBoolean(value)
(((string) parameter) == "Hidden" Visibility.Hidden : Visibility.Collapsed) :
Visibility.Visible;
}
System.Globalization.CultureInfo culture )
{
return null;
}
}