WPF 可见性绑定到具有多个变量的布尔表达式 [英] WPF Visiblity Binding to Boolean Expression with multiple Variables
本文介绍了WPF 可见性绑定到具有多个变量的布尔表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个布尔值,我想根据它们的值显示图像,如下所示:
I have two Booleans I want to show Image based on their value, something like this :
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Window.Resources>
<Image Visibility="{Binding (Boolean1 && Boolean2),Converter={StaticResource BooleanToVisibilityConverter}}" />
注意 Boolean1 和 Boolean2 表达式.
Notice Boolean1 and Boolean2 expression.
推荐答案
XAML 中没有定义 &&
运算符,但您可以绑定到多个属性并使用 IMultiValueConverter代码>:
There is no &&
operator defined in XAML but you could bind to several properties and use an IMultiValueConverter
:
<Image>
<Image.Visibility>
<MultiBinding Converter="{StaticResource YourMultiConverter}">
<Binding Path="Boolean1" />
<Binding Path="Boolean2" />
</MultiBinding>
</Image.Visibility>
</Image>
<小时>
public class YourMultiValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool a = (bool)values[0];
bool b = (bool)values[1];
return a && b ? Visibility.Visible : Visibility.Collapsed;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
或者你可以使用带有条件的 Image
样式:
Or you could use an Image
style with conditions:
<Image>
<Image.Style>
<Style TargetType="Image">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Boolean1}" Value="True" />
<Condition Binding="{Binding Boolean2}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
这篇关于WPF 可见性绑定到具有多个变量的布尔表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文