我有一个非常简单的IMultiValueConverter,只是将两个值进行OR运算。在下面的示例中,我想使用一个同样简单的布尔反转器来反转第一个值。
<MultiBinding Converter="{StaticResource multiBoolToVis}">
<Binding Path="ConditionA" Converter="{StaticResource boolInverter}"/>
<Binding Path="ConditionB"/>
</MultiBinding>
以及逆变器:
public class BoolInverterConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is bool)
{
return !((bool)value);
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
当我使用boolInverter时,MultiValueConverter中的第一个值变为“DependencyProperty.UnsetValue”。如果不使用转换器,则没有问题(当然,这并不是我想要的逻辑)。
我有什么遗漏吗?通过调试器逐步执行显示InverseBoolConverter正确地对我传递给它的值进行了反转,但该值没有被“发送”到MultiValueConverter。