Wpf 为什么在XAML的TimeSpan上使用这些不同的字符串格式?
我快疯了。有人能解释一下为什么相同的字符串格式如此不同吗Wpf 为什么在XAML的TimeSpan上使用这些不同的字符串格式?,wpf,xaml,string-formatting,timespan,Wpf,Xaml,String Formatting,Timespan,我快疯了。有人能解释一下为什么相同的字符串格式如此不同吗 <DataGridTextColumn Header="Max Time" IsReadOnly="True" Binding="{Binding MaxTime, StringFormat=hh\\:mm\\:ss, TargetNullValue=---}"> <DataGridTextColumn Header="Min Time" IsReadOnly="True"> <DataGridT
<DataGridTextColumn Header="Max Time" IsReadOnly="True" Binding="{Binding MaxTime, StringFormat=hh\\:mm\\:ss, TargetNullValue=---}">
<DataGridTextColumn Header="Min Time" IsReadOnly="True">
<DataGridTextColumn.Binding>
<Binding Path="MinTime" StringFormat="{}{0:hh':'mm':'ss}" TargetNullValue=" --- "/>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
当然,每一个对另一个都不起作用
编辑:我越是使用WPF,我就越觉得它不是一个成熟的、足够的产品。我不擅长格式化
TimeSpan
,所以我不能确切地告诉你为什么它们会产生相同的结果,但你可以在这里阅读:
当然,每一个对另一个都不起作用
它们的工作原理是一样的,只是在双引号中应该使用一个反斜杠。以下
<Binding Path="MinTime"
StringFormat="hh\\:mm\\:ss"
TargetNullValue=" --- "/>
以下两个绑定应产生相同的结果
<DataGridTextColumn Header="Max Time" IsReadOnly="True"
Binding="{Binding Path=MaxTime,
StringFormat=hh\\:mm\\:ss,
TargetNullValue=' --- '}"/>
<DataGridTextColumn Header="Min Time" IsReadOnly="True">
<DataGridTextColumn.Binding>
<Binding Path="MinTime"
StringFormat="hh\:mm\:ss"
TargetNullValue=" --- "/>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
接下来的两个问题也应该如此
<DataGridTextColumn Header="Max Time" IsReadOnly="True"
Binding="{Binding Path=MaxTime,
StringFormat={}{0:hh':'mm':'ss},
TargetNullValue=' --- '}"/>
<DataGridTextColumn Header="Min Time" IsReadOnly="True">
<DataGridTextColumn.Binding>
<Binding Path="MinTime"
StringFormat="{}{0:hh':'mm':'ss}"
TargetNullValue=" --- "/>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
Mmmmm,我想说我试过\:但是现在我又试了一次,它工作了。。。奇怪的无论如何谢谢。@SoMos:是的,我知道,它发生了:)
<DataGridTextColumn Header="Max Time" IsReadOnly="True"
Binding="{Binding Path=MaxTime,
StringFormat={}{0:hh':'mm':'ss},
TargetNullValue=' --- '}"/>
<DataGridTextColumn Header="Min Time" IsReadOnly="True">
<DataGridTextColumn.Binding>
<Binding Path="MinTime"
StringFormat="{}{0:hh':'mm':'ss}"
TargetNullValue=" --- "/>
</DataGridTextColumn.Binding>
</DataGridTextColumn>