C# 格式化多绑定时间跨度以隐藏毫秒

C# 格式化多绑定时间跨度以隐藏毫秒,c#,wpf,xaml,timespan,multibinding,C#,Wpf,Xaml,Timespan,Multibinding,我目前正在尝试将WPF TextBlock多重绑定到TimeSpan属性 以下工作: <TextBlock HorizontalAlignment="Right" VerticalAlignment="Center" Text="{Binding Path=ImportOperationRuntime, StringFormat='hh\\:mm\\:ss'}" /> 不幸的是,使用多重绑定会“破坏”StringFormat并在旁边显

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

以下工作:

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

不幸的是,使用多重绑定会“破坏”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>

在实际的多重绑定中使用相同的StringFormats不起作用(例如:

我应该如何构造我的StringFormat?


<MultiBinding StringFormat="Total runtime: {0:hh\:mm\:ss}">
    <Binding Path="ImportOperationRuntime"/>
</MultiBinding>
通常在代码隐藏中,使用双反斜杠
\\
进行转义。
xaml中并非如此。一个就够了。

就是这样,但是,@SeToY,你试过使用VS的绑定工具吗?它完美地放置了转义符。@Tico我第一次听说VS绑定工具:在属性选项卡中,单击属性左侧的小正方形,有一个创建绑定的选项,您可以在那里格式化。