gpt4 book ai didi

wpf - 使用 CommandParameters 和 MultiBindings?

转载 作者:行者123 更新时间:2023-12-03 10:30:04 25 4
gpt4 key购买 nike

是否可以在多重绑定(bind)中使用 CommandParameter="{Binding}"?
我正在尝试在数据网格中执行此操作。

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

第二个 Binding 引发错误。

最佳答案

简而言之,答案是否定的。

在你的第二个内心 Binding你设置了ConverterParameter .这有几个问题:

一、Binding是独立于 MultiBinding 的自己的类与 ConverterConverterParameter特性。在这里你设置了ConverterParameter属性而不设置 Converter属性(property)。请记住 ConverterParameter传递给 Binding's指定的转换器,无论它是否在 MultiBinding 中使用或不。如果您要添加 Converter在这里,转换器将传递指定的 ConverterParameter .

您可能打算做的是设置 ConverterParameter在外 MultiBinding它也有这个属性:

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

如果你试试这个,你会很快看到 ConverterParameter不能成为 Binding 的目标表达式,因为它不是 DependencyProperty .

由于您无法绑定(bind)到 CommandParameter ,典型的解决方法是修改您的 IMultiConverter接受附加值,并通过绑定(bind)表达式提供此值:
<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>

希望这可以帮助!

关于wpf - 使用 CommandParameters 和 MultiBindings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8290411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com