Ho un IMultiValueConverter estremamente semplice che ha semplicemente due valori di OR. Nell'esempio seguente, voglio invertire il primo valore utilizzando un inverter booleano altrettanto semplice.Perché ottengo DependencyProperty.UnsetValue durante la conversione di un valore in una MultiBinding?
<MultiBinding Converter="{StaticResource multiBoolToVis}">
<Binding Path="ConditionA" Converter="{StaticResource boolInverter}"/>
<Binding Path="ConditionB"/>
</MultiBinding>
e l'inverter:
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
}
Quando includo il boolInverter, il primo valore nella MultiValueConverter diventa un "DependencyProperty.UnsetValue". Non ci sono problemi quando non uso il convertitore (a parte la logica che sto cercando, ovviamente).
mi sto perdendo qualcosa? Passando attraverso il debugger, l'InverseBoolConverter sta invertendo correttamente il valore che ho passato, ma quel valore non viene quindi "inviato" a MultiValueConverter.
vedere questo: http://stackoverflow.com/questions/683863/items-collection-must-be-empty-before-using-itemssource – mkb