Pourquoi dois-je obtenir une DependencyProperty.UnsetValue lors de la conversion d'une valeur dans une MultiBinding?

J'ai une très simple IMultiValueConverter que, tout simplement, OU deux valeurs. Dans l'exemple ci-dessous, je veux inverser la première valeur à l'aide d'un tout aussi simple booléen de l'onduleur.

<MultiBinding Converter="{StaticResource multiBoolToVis}">
    <Binding Path="ConditionA" Converter="{StaticResource boolInverter}"/>
    <Binding Path="ConditionB"/>
</MultiBinding>

et l'onduleur:

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
}

Quand j'inclus le boolInverter, la première valeur dans la MultiValueConverter devient un "DependencyProperty.UnsetValue". Il n'y a pas de problèmes quand je ne suis pas d'utiliser le convertisseur (autres que de ne pas la logique, que je poursuis, bien sûr).

Suis-je raté quelque chose? Parcourant le débogueur montre que la InverseBoolConverter est bien l'inversion de la valeur que je passe, mais cette valeur est alors de ne pas être "envoyé" à la MultiValueConverter.

InformationsquelleAutor Erik Kerber | 2010-05-11