2013-12-13 67 views
3

我目前正試圖以多路捆綁一個WPF的TextBlock的時間跨度屬性。格式MultiBinding時間跨度隱藏毫秒

以下工作:

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

不幸的是,使用MultiBinding 「破壞」 了的StringFormat和旁邊顯示毫秒(儘管通過的StringFormat隱藏)。在實際MultiBinding使用時不工作

<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(例如:<MultiBinding StringFormat="Total runtime: {0:hh\\:mm\\:ss}">)以下的人不工作。

我應該如何構造我的StringFormat?

回答

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

通常,在後面的代碼使用一個雙反斜線\\轉義。 這在xaml中不是這種情況。一個就足夠了。

+0

謝謝,這個作品! – SeToY

+0

這就是它,但@SeToY,你嘗試過使用VS的綁定工具嗎?它完美地放置了逃生字符。 – Tico

+0

@Tico我第一次聽說VS綁定工具:D – SeToY