2011-01-14 15 views
9

Windows Phone 7 için XAML kullanarak bir tarihi biçimlendirmenin bir yolu var mı?WP7 üzerinde XAML'de bir tarih biçimlendirme

kullanmayı denediyseniz:

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

Ama hatayı alıyorum:

mülkiyet 'StringFormat' Bildiğim kadarıyla farkında StringFromat olduğum olarak

cevap

20

... ... SL3 içinde bir IValueConverter faydalanmak gerekir. Eğer daha sağlam bir yaklaşım isteseydim

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(); 
    } 
} 

Eğer ConverterParameter devreye sokabilir. ilk önce bir kaynak olarak dönüştürücü tanımlamak için XAML sonra

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(); 
     } 
    } 

...

<namespace:DateTimeToStringConverter x:Key="MyDateTimeToStringConverter"/> 

..Bugün ...

DateTime değeri biçimlendirme için kabul edilebilir bir parametre ile birlikte referans
<TextBlock Text="{Binding Date, 
     Converter={StaticResource MyDateTimeToStringConverter}, 
     ConverterParameter=\{0:M\}}"/> 
+0

bazı öneriler Ancak 1 since: kullanım örneği dahil, ConverterParameter kullanımı alternatif bir biçim dizesi geçmek "DateTimeToStringConverter" demek onun işlevine uygun olarak daha sınıf bir isim vermek olun. – AnthonyWJones

+0

@AnthonyWJones Düzenlemeler eklendi ... –

+0

Bir IValueConverter kullanmaya karşı şiddetle tavsiye ederim. Bağlama yaptığınız mülkü açığa çıkarırken bir C# kodu da bu dönüşümü aynı şekilde yapar. – JustinAngel

2

'Bağlama' türü bulunamadı Silverlight 4 işlevi, Windows Phone 7.0 için Silverlight temelde Silverlight 3 + bazı ekstralar. Sanırım hayır o zaman.

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

bu mümkün sl4 içinde

+1

İşleri Mango –

İlgili konular