He enviado múltiples parámetros desde mi Comando de casilla de verificación. He usado un convertidor. El código está abajo. Si pongo un depurador y ver los valores aquí son mis resultados:Por qué este multibinding no funciona
Cuando cheque casilla de verificación está marcada o bien unchekcked:
En el convertidor tiene teh valores (matriz del objeto y elemento boolean). Pero cuando llego a mi método, el valor es un objeto [2], pero ambos valores son nulos
CheckBox XAML
<CheckBox x:Name="checkBox"
Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Data.Label}"
ClickMode="Release"
Command="{Binding Path=DataContext.SelectUnSelect}">
<CheckBox.CommandParameter>
<MultiBinding Converter="{StaticResource SelectedItemConverter}">
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Content.Data"/>
<Binding RelativeSource="{RelativeSource Self}" Path="IsChecked"/>
</MultiBinding>
</CheckBox.CommandParameter>
convertidor:
public class CheckConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return values;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Ver el código de comando del modelo:
public ICommand SelectUnSelect
{
get { return new RelayCommand<object>(parm => this.SelectAndUnSelect(parm));}
}
Si pongo un depurador en el método SelectAndUnSelect, me muestra el objeto [2] en parm, pero ambos son nulos.
Observación: Si enlace mi parámetro de comando a cualquiera de los enlaces, funciona bien.
¿Qué es lo que falta aquí?
- Shankar
que funcionó. No estoy seguro de por qué no estaba funcionando antes. – Shankar
Funciona para mí también. Me interesaría saber por qué solo funciona de esa manera, y no devolviendo la matriz de objetos. – csteinmueller