GroupBox header 绑定中的 StringFormat 似乎不起作用

StringFormat in GroupBox header binding doesn't seem to work

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

第一部分有效,return文本符合预期。但我希望最终文本被格式化。例如当我return cm 我想让它显示为Foundation Height (cm),但是下面的代码只显示cm.

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

不加引号试试

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

更新

因为您已经为 header 使用了绑定,所以您应该使用 HeaderStringFormat

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

阅读documentation了解更多

试试这个:

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

我遇到了同样的问题。我找到了答案 here.

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

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

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