GroupBox 标头绑定中的字符串格式似乎不起作用

本文关键字:格式 不起作用 字符串 绑定 GroupBox | 更新日期: 2023-09-27 17:56:29

我正在尝试将GroupBox的标题文本绑定到属性并使用StringFormat显示它。

第一部分工作,它按预期返回文本。但是我希望最终文本被格式化。例如,当我返回cm时,我希望它显示为Foundation Height (cm),但下面的代码仅显示cm

<GroupBox Header="{Binding CurrentTargetUnit, 
    Converter={StaticResource QuantityToTextConverter},
    ConverterParameter={x:Static enumerations:Quantity.Length},
    StringFormat='Foundation Height ({0})'}">
</GroupBox>

GroupBox 标头绑定中的字符串格式似乎不起作用

尝试不带引号

....
StringFormat=Foundation Height ({0})}">

更新

由于您对标头使用了绑定,因此应改用HeaderStringFormat

....
HeaderStringFormat=Foundation Height ({0})}">

阅读文档了解更多信息

我遇到了同样的问题。 我在这里找到了答案。

<GroupBox>
    <GroupBox.Header>
        <TextBlock Text="{Binding CurrentTargetUnit, 
                                  Converter={StaticResource QuantityToTextConverter},
                                  ConverterParameter={x:Static enumerations:Quantity.Length},
                                  StringFormat=Foundation Height ({0})}">
    </GroupBox.Header>
</GroupBox>

您还需要从字符串格式中删除引号。 此外,在上面的链接中,它显示了将"{}"放在 StringFormat 中的任何内容之前。 如果我没记错的话,你只需要占位符是第一个:StringFormat={}{0:C}

允许

StringFormat 绑定的元素数量有限,TextBlock 是一个,而 GroupBox 标头则不允许。

试试这个:

StringFormat={}Foundation Height ({0})}">