XAML: 如何使 GroupBox Header 的一部分加粗并绑定?

XAML: How do I make part of a GroupBox Header bold, with binding?

我很久以前就问过一个问题并得到了帮助。要求略有变化。

原问题:

最初的要求只是 hard-code 将 header 文本发送到:

学生(最多:32)

Ed 给我的解决方案是:

<GroupBox.Header>
    <TextBlock>
        <Span FontWeight="Bold">Students</Span>
        <Span>(Max: 32)</Span>
    </TextBlock>
</GroupBox.Header>

现在我需要将这两个部分绑定到一些依赖属性,这样 header 就会显示为以下之一:

我需要绑定到这两个 Span 部分,类似于此:

<GroupBox.Header>
    <TextBlock>
        <Span FontWeight="Bold">{Binding ProfessionString}</Span>
        <Span>{Binding MaxString}</Span>
    </TextBlock>
</GroupBox.Header>

,但显然 {Binding ProfessionString} 和 {Binding MaxString} 将逐字显示。

有办法吗?

谢谢。

两个 TextBlock 怎么样:

<GroupBox.Header>
    <StackPanel Orientation="Horizontal">
        <TextBlock FontWeight="Bold" Text="{Binding ProfessionString}"/>
        <TextBlock Text="{Binding MaxString}"/>
    </StackPanel>
</GroupBox.Header>

您应该使用 Run 元素并将它们的文本属性绑定到您的源属性:

<GroupBox.Header>
    <TextBlock>
        <Run FontWeight="Bold" Text="{Binding ProfessionString, Mode=OneWay}" />
        <Run Text="{Binding MaxString, Mode=OneWay}" />
    </TextBlock>
</GroupBox.Header>