Wpf 使用CommandParameters和多重绑定?
是否可以在多重绑定中使用CommandParameter=“{Binding}”? 我试图在数据网格中实现这一点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"/>
<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>