WPF CommandParameter MultiBinding values null
.net-4.0, binding, c#, multibinding, wpf
Solution
This'll do it:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.ToArray();
}
Take a look at this question for the explanation.
Problem
I am simply trying to bind two controls as command parameters and pass them into my command as an `object[]`. XAML: ``` <UserControl.Resources> <C:MultiValueConverter x:Key="MultiParamConverter"></C:MultiValueConverter> </UserControl.Resources> <StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal"> <Button Name="Expander" Content="+" Width="25" Margin="4,0,4,0" Command="{Binding ExpanderCommand}"> <Button.CommandParameter> <MultiBinding Converter="{StaticResource MultiParamConverter}"> <Binding ElementName="Content"/> <Binding ElementName="Expander"/> </MultiBinding> </Button.CommandParameter> </Button> <Label FontWeight="Bold">GENERAL INFORMATION</Label> </StackPanel> <StackPanel Name="Content" Orientation="Vertical" Visibility="Collapsed"> <Label>Test</Label> </StackPanel> </StackPanel> ``` Command: ``` public ICommand ExpanderCommand { get { return new RelayCommand(delegate(object param) { var args = (object[])param; var content = (UIElement)args[0]; var button = (Button)args[1]; content.Visibility = (content.Visibility == Visibility.Visible) ? Visibility.Collapsed : Visibility.Visible; button.Content = (content.Visibility == Visibility.Visible) ? "-" : "+"; }); } } ``` Converter: ``` public class MultiValueConverter : 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("No two way conversion, one way binding only."); } } ``` Basically what is happening is that the binding seems to be working fine and the converter is returning an `object[]` containing the correct values, however when the command executes the param is an `object[]` containing the same number of elements except they are `null`. Can someone please tell me why the values of the `object[]` parameter are being set to `null`? Thanks, Alex.