我目前正在尝试将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?
答案 0 :(得分:2)
<MultiBinding StringFormat="Total runtime: {0:hh\:mm\:ss}">
<Binding Path="ImportOperationRuntime"/>
</MultiBinding>
通常在代码后面使用双反斜杠\\
进行转义。
在xaml中不是这种情况。一个就够了。