У меня очень простой 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.