传递一个 Binding 和一个常量字符串作为参数
Posted
技术标签:
【中文标题】传递一个 Binding 和一个常量字符串作为参数【英文标题】:Pass one Binding and one constant string as parameter 【发布时间】:2021-05-03 07:04:28 【问题描述】:我有一个按钮,想要传递多个命令参数,一个是 Binding,一个是常量字符串(在本例中为常量字符串 TDS
)
我正在尝试点击此链接:Passing two command parameters using a WPF binding,但这是用于多重绑定。在我的情况下,我使用 1 个绑定和一个常量字符串。我尝试了以下方法,但它在 VS 中给出了语法错误。
<Button.CommandParameter>
<MultiBinding>
<Binding Path="."/>
<s:String>TDS</s:String>
</MultiBinding>
</Button.CommandParameter>
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:试试这个:
<Button.CommandParameter>
<MultiBinding Converter="StaticResource yourConverter">
<Binding Path="."/>
<Binding>
<Binding.Source>
<s:String>TDS</s:String>
</Binding.Source>
</Binding>
</MultiBinding>
</Button.CommandParameter>
如果你的字符串是在资源中定义的,你可以这样引用它:
...
<x.Resources>
<s:String x:Key="stringKey">TDS</s:String>
</x.Resources>
...
<Button.CommandParameter>
<MultiBinding Converter="StaticResource yourConverter">
<Binding Path="."/>
<Binding Source="StaticResource stringKey" />
</MultiBinding>
</Button.CommandParameter>
如评论中所述,必须为 MultiBinding
指定转换器。
【讨论】:
MultiBinding 需要一个 Converter 来产生一个值。 @Clemens 是的,我知道。不清楚是否是复制粘贴错误,因为在链接的 SO 答案中转换器没有丢失。 感谢它的工作。我知道转换器丢失了。我只是想先修复编译时错误。你的答案很完美。以上是关于传递一个 Binding 和一个常量字符串作为参数的主要内容,如果未能解决你的问题,请参考以下文章