xaml - 在 WP7 上用 XAML 格式化日期

标签 xaml windows-phone-7

有没有办法使用 XAML for Windows Phone 7 格式化日期?

如果尝试使用:

<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy}}" />

但我得到了错误:

在“绑定(bind)”类型中找不到属性“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值(value)...
<TextBlock Text="{Binding Date, 
         Converter={StaticResource MyDateTimeToStringConverter}, 
         ConverterParameter=\{0:M\}}"/>

关于xaml - 在 WP7 上用 XAML 格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4695057/

相关文章:

c# - 绑定(bind)到列表框时出现 XamlParseException

windows-phone-7 - 如何在 Windows Phone 7 模拟器上设置电子邮件帐户?

c# - Windows 手机 : How to draw a line on a Rectangle?

visual-studio - 键盘命令摆脱自动生成的双引号

c# - 在 XAML 中将 ListBox 绑定(bind)到列表(集合)

c# - 从其他 Xaml 文件绑定(bind)到 Usercontrol 中的元素

c# - silverlight/wp7 : modify string being bound to XAML

c# - 在同一个 ListView 中拖放项目

c# - 为 XAML 绑定(bind) FallBackValue 使用复杂类型

c# - 在数据模板中设置 StoryBoard 目标