这是我的资源转换器
<BooleanToVisibilityConverter x:Key="BoolToVisConverter" />
我有 2 个按钮和 1 个复选框
如果选中复选框,我想显示的添加按钮 以及我想显示的编辑按钮是否选中复选框未选中
<Button x:Name="Update" Content="שמור שינויים" Grid.Row="3" Height="30" Visibility="{Binding IsChecked ,TargetNullValue=true, ElementName=Checked, FallbackValue=Hidden, Converter={StaticResource BoolToVisConverter}}" Margin="10,23,10,22" Background="LightBlue" FontSize="15" Click="upDate_Click" />
<Button x:Name="Add" Content=" הוספה" Grid.Row="4" Height="30" Visibility="{Binding !IsChecked , FallbackValue=Visible, TargetNullValue=false, ElementName=Checked, Converter={StaticResource BoolToVisConverter}}" Margin="10,10,10,35" Background="LightBlue" FontSize="15" Click="Add_Click" />
<CheckBox x:Name="Checked" IsChecked="True" />
但是{Binding !IsChecked 不起作用
如果选中,如何隐藏元素?
尝试使用此转换器:
public class InvertedBooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool boolValue) {
return !boolValue ? Visibility.Visible : Visibility.Collapsed;
}
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在你的xaml.cs中:
<Button x:Name="Add" Content=" הוספה" Grid.Row="4" Height="30"
Visibility="{Binding IsChecked, ElementName=Checked, Converter={StaticResource InvertedBoolToVisConverter}}"
Margin="10,10,10,35" Background="LightBlue" FontSize="15" />
不要忘记将转换器包含在资源中:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisConverter" />
<local:InvertedBooleanToVisibilityConverter x:Key="InvertedBoolToVisConverter" />
</Window.Resources>