簡體   English   中英

BooleanToVisibilityConverter 在 true 或 null 時轉換為 Visible 並在 false 時轉換為 Collapsed

[英]BooleanToVisibilityConverter that converts to Visible when true or null and Collapsed when false

我在 ThreeState ToggleButton 和普通按鈕之間做了一些綁定

這就是我想要實現的目標:

button#1可見,如果button#2 IsChecked=True 或 Null

如果按鈕#2 IsChecked=False,則按鈕#1折疊

內置 BooleanToVisibilityConverter 僅在 true 時顯示按鈕。

如果您能對轉換器提供幫助,我將不勝感激。 謝謝

這非常簡單。 value truenull時,以下IValueConverter返回Visibility.Visible

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;
  }
}

並且沒有 BooleanToVisibilityConverter,只有 XAML:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM