【问题标题】:Pass one Binding and one constant string as parameter传递一个 Binding 和一个常量字符串作为参数
【发布时间】: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>

我该如何解决这个问题?

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案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 答案中转换器没有丢失。
    • 感谢它的工作。我知道转换器丢失了。我只是想先修复编译时错误。你的答案很完美。
    猜你喜欢
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2017-05-03
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多