我在ThreeState ToggleButton和普通按钮之间做了一些绑定。
这就是我想要达到的目标:
button#1,如果button#2 IsChecked=True或Null可见的话
如果button#1 button#2 IsChecked=False崩溃
内置的BooleanToVisibilityConverter只在真时显示按钮。
如果你能帮忙改装,我将非常感激。谢谢
发布于 2020-05-09 15:29:59
这太简单了。以下IValueConverter在value为true或null时返回true
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;
}
}发布于 2020-05-09 16:05:02
没有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>https://stackoverflow.com/questions/61698400
复制相似问题