如何将 IsEnabled 属性绑定到两个值的 OR 运算?
题
目前,当我必须对控件的 IsEnabled 属性上的两个值进行 OR 运算时,我最终使用不可见的容器控件(我使用边框)并设置控件的 IsEnabled 和容器的 IsEnabled 。
有更好的方法吗?如果不是,那么执行此操作的最轻量级控件是什么?
提前致谢。
其他提示
可以使用这样的转换器:
public class BooleanOrConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
foreach (object value in values)
{
if ((value is bool) && (bool)value == true)
{
return true;
}
}
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException("BooleanOrConverter is a OneWay converter.");
}
}
.
,这就是你将如何使用它:
<myConverters:BooleanOrConverter x:Key="BooleanOrConverter" />
...
<ComboBox Name="MyComboBox">
<ComboBox.IsEnabled>
<MultiBinding Converter="{StaticResource BooleanOrConverter}">
<Binding ElementName="SomeCheckBox" Path="IsChecked" />
<Binding ElementName="AnotherCheckbox" Path="IsChecked" />
</MultiBinding>
</ComboBox.IsEnabled>
</ComboBox>
. 可以使用 MultiBinding
转换器或者的值通过。
不隶属于 StackOverflow