У меня есть чрезвычайно простой IMultiValueConverter, который просто два значения ИЛИ. В приведенном ниже примере я хочу инвертировать первое значение с помощью столь же простого логического инвертора.
<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.