我从我的复选框命令发送了多个参数。我用过转换器。代码如下。如果我放置一个调试器并看到这里的值就是我的结果:
当复选框检查被选中或取消选中时:
在转换器中,它具有值(项目对象和布尔值的数组)。但是当我使用我的方法时,该值是一个对象[2],但两个值都是 NULL
复选框 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>
转换器:
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();
}
}
查看模型命令代码:
public ICommand SelectUnSelect
{
get { return new RelayCommand<object>(parm => this.SelectAndUnSelect(parm));}
}
如果我将调试器放在 SelectAndUnSelect 方法中,它会显示 parm 中的 object[2],但它们都是 null。
观察:如果我将命令参数绑定到任何一个绑定,它就可以正常工作。
我在这里缺少什么?