Tengo un IMultiValueConverter extremadamente simple que simplemente los dos valores de OR. En el siguiente ejemplo, quiero invertir el primer valor usando un inversor booleano igualmente simple.¿Por qué obtengo DependencyProperty.UnsetValue al convertir un valor en un enlace múltiple?
<MultiBinding Converter="{StaticResource multiBoolToVis}">
<Binding Path="ConditionA" Converter="{StaticResource boolInverter}"/>
<Binding Path="ConditionB"/>
</MultiBinding>
y el inversor:
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
}
Cuando incluyo el boolInverter, el primer valor en el MultiValueConverter se convierte en un "DependencyProperty.UnsetValue". No hay problemas cuando no uso el convertidor (aparte de la lógica que estoy buscando, por supuesto).
¿Echo de menos algo? Pasar por el depurador muestra que InverseBoolConverter invierte correctamente el valor que le paso, pero ese valor no se 'envía' al MultiValueConverter.
ver este: http://stackoverflow.com/questions/683863/items-collection-must-be-empty-before-using-itemssource – mkb