[英]Formatting a date in XAML on WP7
有沒有辦法使用XAML為Windows Phone 7格式化日期?
如果嘗試使用:
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy}}" />
但我得到錯誤:
在'Binding'類型中找不到屬性'StringFormat'
在SL4內這是可能的......
<TextBlock Text="{Binding Date, StringFormat='MM/dd/yyyy'}}"/>
...在SL3中你需要使用IValueConverter 。
public class DateTimeToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return String.Format("{0:MM/dd/yyyy}", (DateTime)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
如果你想要一個更強大的方法,你可以使用ConverterParameter
。
public class DateTimeToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null)
return ((DateTime)value).ToString(culture);
else
return ((DateTime)value).ToString(parameter as string, culture);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后在您的XAML中,您首先將轉換器定義為資源...
<namespace:DateTimeToStringConverter x:Key="MyDateTimeToStringConverter"/>
..然后引用它以及用於格式化DateTime
值的可接受參數...
<TextBlock Text="{Binding Date,
Converter={StaticResource MyDateTimeToStringConverter},
ConverterParameter=\{0:M\}}"/>
據我所知,StringFromat是Silverlight 4的功能,Silverlight for Windows Phone 7.0基本上是Silverlight 3 +一些附加功能。 我想沒有。
這可能就是你要找的東西。 RelativeDateTimeConverter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.