Ho inviato più parametri dal mio comando Checkbox. Ho usato un convertitore. Il codice è sotto Se metto un debugger e vedere i valori qui sono i miei risultati:Perché questa multibinding non funziona
Quando controllo casella di controllo è sia selezionata o unchekcked:
Nel convertitore ha teh valori (Array dell'oggetto elemento e booleano). Ma quando vengo a mio metodo, il valore è un oggetto [2], ma entrambi i valori sono nulli
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>
Converter:
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();
}
}
Visualizza codice di comando modello:
public ICommand SelectUnSelect
{
get { return new RelayCommand<object>(parm => this.SelectAndUnSelect(parm));}
}
Se metto un debugger nel metodo SelectAndUnSelect, mi mostra oggetto [2] in parm ma entrambi sono nulli.
Osservazione: Se si associa il mio parametro di comando a uno qualsiasi dei binding funziona correttamente.
Cosa mi manca qui?
- Shankar
che ha funzionato. Non sono sicuro del motivo per cui non funzionava prima. – Shankar
Funziona anche per me. Sarei interessato a sapere perché funziona solo in questo modo, e non restituendo l'array di oggetti. – csteinmueller