我试图通过转换Total Seconds来绑定TextBlock的Text属性,即
1004到分钟:秒我可以成功地从XML中取出我的秒数,但我不知道如何使用Getters和Setter,所以我可以将我的秒数转换为分钟:秒
我看过TimeSpan,我知道它可以做我要求的但我不知道如何编写getter和setter所以它会将整数值(秒)转换为Minute:Seconds格式.
到目前为止,这是我班上的内容
public class Stats { public TimeSpan Time {get;set;} }
任何帮助将不胜感激,
谢谢
约翰
解决方法
会推荐这个转换器(因为当你真正想要2:01时,前两个答案会给你2:1 –
public class FriendlyTimeConverter : IValueConverter { public object Convert(object value,Type targettype,object parameter,CultureInfo culture) { TimeSpan ts = TimeSpan.FromSeconds((int)value); return String.Format("{0}:{1:D2}",ts.Minutes,ts.Seconds); } public object ConvertBack(object value,CultureInfo culture) { throw new NotImplementedException(); } }
Note the :D2 specifier for format strings.
要使用它,您可以在绑定的同时指定它:
<phone:PhoneApplicationPage.Resources> <util:FriendlyTimeConverter x:Key="FriendlyTimeConverter"/> </phone:PhoneApplicationPage.Resources> ... <TextBlock Text="{Binding timeRemaining,Converter={StaticResource FriendlyTimeConverter}}" Name="Timerdisplay" Grid.Column="4" HorizontalAlignment="Right" Margin="12,0" Style="{StaticResource PhoneTextTitle2Style}"></TextBlock>