首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BooleanToVisibilityConverter,在真或空时转换为可见的,当为false时转换为折叠

BooleanToVisibilityConverter,在真或空时转换为可见的,当为false时转换为折叠
EN

Stack Overflow用户
提问于 2020-05-09 14:34:57
回答 2查看 594关注 0票数 1

我在ThreeState ToggleButton和普通按钮之间做了一些绑定。

这就是我想要达到的目标:

button#1,如果button#2 IsChecked=True或Null可见的话

如果button#1 button#2 IsChecked=False崩溃

内置的BooleanToVisibilityConverter只在真时显示按钮。

如果你能帮忙改装,我将非常感激。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-09 15:29:59

这太简单了。以下IValueConvertervaluetruenull时返回true

代码语言:javascript
复制
public sealed class BooleanToVisibilityConverter : IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  {
    return value is bool bValue && bValue 
      || value == null 
        ? Visibility.Visible 
        : Visibility.Collapsed;
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
    return value is Visibility visibility 
      && visibility == Visibility.Visible;
  }
}
票数 2
EN

Stack Overflow用户

发布于 2020-05-09 16:05:02

没有BooleanToVisibilityConverter,只有XAML:

代码语言:javascript
复制
<Window.Resources>
    <Style TargetType="Button">
        <Setter Property="Visibility"
                Value="Visible" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=chk1, Path=IsChecked}"
                         Value="False">
                <Setter Property="Visibility"
                        Value="Collapsed" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <Button Content="Button"
            HorizontalAlignment="Left"
            Margin="34,68,0,0"
            VerticalAlignment="Top"
            Width="75" />
    <CheckBox x:Name="chk1"
              Content=" Toggle"
              HorizontalAlignment="Left"
              Margin="34,29,0,0"
              VerticalAlignment="Top"
              IsThreeState="True"
              IsChecked="True" />
</Grid>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61698400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档