Ich habe einen sehr einfachen IMultiValueConverter, der einfach zwei Werte OR. Im folgenden Beispiel möchte ich den ersten Wert mit einem ebenso einfachen booleschen Inverter invertieren.Warum erhalte ich DependencyProperty.UnsetValue, wenn ein Wert in einem MultiBinding konvertiert wird?
<MultiBinding Converter="{StaticResource multiBoolToVis}">
<Binding Path="ConditionA" Converter="{StaticResource boolInverter}"/>
<Binding Path="ConditionB"/>
</MultiBinding>
und der Wechselrichter:
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
}
Wenn ich die boolInverter, der erste Wert in dem MultiValueConverter umfassen ein "DependencyProperty.UnsetValue" wird. Es gibt keine Probleme, wenn ich den Konverter nicht verwende (außer natürlich nicht die Logik, die ich anstrebe).
Fehle ich etwas? Beim Durchlaufen des Debuggers wird angezeigt, dass der InverseBoolConverter den übergebenen Wert korrekt invertiert, dieser Wert wird jedoch nicht an den MultiValueConverter "gesendet".
siehe diese: http://stackoverflow.com/questions/683863/items-collection-must-be-empty-before-using-itemssource – mkb