我有一個名爲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