格式化MultiBinding TimeSpan以隐藏毫秒

时间:2013-12-13 21:25:16

标签: c# wpf xaml timespan multibinding

我目前正在尝试将WPF TextBlock多重绑定到TimeSpan属性。

以下作品:

<TextBlock HorizontalAlignment="Right"
           VerticalAlignment="Center"
           Text="{Binding Path=ImportOperationRuntime, StringFormat='hh\\:mm\\:ss'}" />

不幸的是,使用MultiBinding“销毁”StringFormat并在旁边显示毫秒(虽然通过StringFormat隐藏)。以下不起作用:

<TextBlock Grid.Column="6" VerticalAlignment="Center">
    <TextBlock.Text>
        <MultiBinding StringFormat="Total runtime: {0}">
            <Binding Path="ImportOperationRuntime" StringFormat="hh':'mm':'ss" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

<TextBlock Grid.Column="6" VerticalAlignment="Center">
    <TextBlock.Text>
        <MultiBinding StringFormat="Total runtime: {0}">
            <Binding Path="ImportOperationRuntime" StringFormat="hh\:mm\:ss" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

<TextBlock Grid.Column="6" VerticalAlignment="Center">
    <TextBlock.Text>
        <MultiBinding StringFormat="Total runtime: {0}">
            <Binding Path="ImportOperationRuntime" StringFormat="hh\\:mm\\:ss" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

<TextBlock Grid.Column="6" VerticalAlignment="Center">
    <TextBlock.Text>
        <MultiBinding StringFormat="Total runtime: {0}">
            <Binding Path="ImportOperationRuntime" StringFormat="hh:mm:ss" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

在实际的MultiBinding中使用时,相同的StringFormats不起作用(例如:<MultiBinding StringFormat="Total runtime: {0:hh\\:mm\\:ss}">)。

我应该如何构建StringFormat?

1 个答案:

答案 0 :(得分:2)

<MultiBinding StringFormat="Total runtime: {0:hh\:mm\:ss}">
    <Binding Path="ImportOperationRuntime"/>
</MultiBinding>

通常在代码后面使用双反斜杠\\进行转义。 在xaml中不是这种情况。一个就够了。