我有一个非常简单的 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。