Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BooleantVisibilityConverter,在为真或为空时转换为可见,在为假时折叠_C#_Wpf - Fatal编程技术网

C# BooleantVisibilityConverter,在为真或为空时转换为可见,在为假时折叠

C# BooleantVisibilityConverter,在为真或为空时转换为可见,在为假时折叠,c#,wpf,C#,Wpf,我在三态切换按钮和普通按钮之间进行绑定 这就是我想要实现的目标: 按钮#1如果按钮#2IsChecked=True或Null,则按钮#1可见 如果按钮#2IsChecked=False,则按钮#1折叠 内置BooleanToVisibilityConverter仅在为true时显示该按钮 如果您能帮忙安装转换器,我将不胜感激。 谢谢这太简单了。以下IValueConverter返回可见性。当值为true或null时可见: public sealed class BooleanToVisibili

我在三态切换按钮和普通按钮之间进行绑定

这就是我想要实现的目标:

按钮#1如果按钮#2IsChecked=True或Null,则按钮#1可见

如果按钮#2IsChecked=False,则按钮#1折叠

内置BooleanToVisibilityConverter仅在为true时显示该按钮

如果您能帮忙安装转换器,我将不胜感激。
谢谢

这太简单了。以下
IValueConverter
返回
可见性。当
true
null
时可见:

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

这是可笑的简单。以下
IValueConverter
返回
可见性。当
true
null
时可见:

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>

没有BooleantVisibilityConverter,只有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>


如果您已经在使用某种类型的viewmodel,这将有助于您将bool绑定到控件:您必须通过实现来实现自定义转换器。BionicCode,是的,但a不知道如何使用ThreeState。添加到目前为止您为这些按钮和可见性提供的代码。这使得人们可以更简单地帮助您。如果您已经在使用某种viewmodel,这将有助于您将布尔绑定到控件:您必须通过实现来实现自定义转换器。BionicCode,是的,但a不知道如何使用ThreeState来实现。添加到目前为止针对这些按钮和可见性的代码。这使人们更容易帮助你。