Wpf 使用CommandParameters和多重绑定?

Wpf 使用CommandParameters和多重绑定?,wpf,binding,mvvm,mvvm-light,wpfdatagrid,Wpf,Binding,Mvvm,Mvvm Light,Wpfdatagrid,是否可以在多重绑定中使用CommandParameter=“{Binding}”? 我试图在数据网格中实现这一点 <CheckBox.CommandParameter> <MultiBinding Converter="{StaticResource CDetailConverter}"> <Binding Path ="IsChecked" ElementName="chkSelection"/>

是否可以在多重绑定中使用CommandParameter=“{Binding}”? 我试图在数据网格中实现这一点

<CheckBox.CommandParameter>
    <MultiBinding Converter="{StaticResource CDetailConverter}">
        <Binding Path ="IsChecked" ElementName="chkSelection"/>                                        
        <Binding ConverterParameter="{Binding}"/>
    </MultiBinding>
</CheckBox.CommandParameter>


第二个绑定抛出一个错误。

简而言之,答案是否定的

在第二个内部
绑定中
设置了
转换器参数
。这有几个问题:

首先,
Binding
是一个独立于
MultiBinding
的类,具有
Converter
ConverterParameter
属性。这里您设置了
ConverterParameter
属性,而没有设置
Converter
属性。请记住,
ConverterParameter
将传递给
绑定的
指定转换器,无论它是否在
多绑定中使用。如果要在此处添加
转换器
,则会将指定的
转换器参数
传递给转换器

您可能想做的是在外部
MultiBinding
上设置
ConverterParameter
,它也具有以下属性:

<CheckBox.CommandParameter>
    <MultiBinding Converter="{StaticResource CDetailConverter}" ConverterParameter="{Binding }">
        <Binding Path ="IsChecked" ElementName="chkSelection"/>                                        
    </MultiBinding>
</CheckBox.CommandParameter>

希望这有帮助

Converter参数不是依赖项属性,因此您不能将某个内容绑定到它。。。。你想怎么做?Protip:不需要在标题中添加标签,如果没有实际的异常类型和消息,“抛出错误”实际上是无用的。在本例中,您很幸运,多绑定命令参数的整个转换器需求是众所周知的。将来,它可能会导致您的问题得不到任何答案!
<CheckBox.CommandParameter>
    <!-- CDetailConverter updated to expect an additional value in the values array -->
    <MultiBinding Converter="{StaticResource CDetailConverter}">
        <Binding Path ="IsChecked" ElementName="chkSelection"/>
        <Binding />                                   
    </MultiBinding>
</CheckBox.CommandParameter>