我有一个名为Time的TimeSpan变量,我设法在XAML中成功绑定。以下是我的代码:在XAML中绑定TimeSpan的StringFormat不起作用
...
<TextBlock Grid.Column="2" Text="{Binding Time, StringFormat='{}{0:hh:mm}'}" />
...
现在值正确显示,但格式仍然是hh:mm:ss。我试图摆脱秒,只显示小时和分钟,但由于某些原因,我对StringFormat所做的更改没有考虑到,而且我总是得到相同的hh:mm:ss格式。你能给些建议么?
谢谢!
编辑:
所作的评论来看下面似乎我已经绑定的时间是不是在时间跨度格式作为的StringFormat似乎是正确的,但显示的数值是错误的。 时间变量被定义为一个自定义类实录如下:
private TimeSpan time;
public TimeSpan Time
{
get { return time; }
set { time = value; }
}
在我的代码定义了一个观察的集合:
ObservableCollection<Record> records = new ObservableCollection<Record>();
的集合人口稠密的话,我有:
listBoxRecords.ItemsSource = this.records;
下面是完整的XAML,请牢记其余字段正确填充,只有TimeSpan给我带来麻烦:
<ListBox Margin="0,44,0,58" Name="listBoxRecords" ItemsSource="{Binding records}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="85" />
<ColumnDefinition Width="55" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Date, StringFormat='{}{0:dd-MM-yyyy HH:mm}'}" />
<TextBlock Grid.Column="1" Text="{Binding Type }" />
<TextBlock Grid.Column="2" Text="{Binding Time, StringFormat='{}{0:hh\\:mm}'}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如果你的问题现在已得到解决,请[接受一个答案(http://stackoverflow.com/help/someone-answers)按照惯例在这个网站上。 – Sheridan
问题还没有解决,否则我会很乐意接受答案。 – mmvsbg
当你尝试我的答案时,会发生什么(铭记我的评论,你看到的* *不是来自我的'StringFormat')?在一个新项目中尝试一下,你会发现它工作得很好。 – Sheridan