i zabawy z nowym szablonem aplikacji Windows Store Universal, który może być używany dla Windows 8.1 i Windows Phone 8.1 i zastanawiałem się, jak sformatować ciągi w kodzie XAML.Jak sformatować datę w uniwersalnej aplikacji Windows Store (W8.1 + WP8.1)?
co starałem (XAML):
<TextBlock Text="{Binding TestItem.CurrentDate, StringFormat={}{0:MM/dd/yyyy}}" />
Problemem jest to, że StringFormat
nie jest dostępny w Windows.UI.Xaml.Controls.TextBox
.
Firma Microsoft utworzyła sample project, która dotyczy dat formatowania. Ale stosowane tam podejście oparte jest na (brzydkim) kodzie.
Tak, tu jest moje pytanie:
- Dlaczego
StringFormat
nie jest dostępny w systemie Windows Store Uniwersalnego Apps? - Jak sformatować ciągi tylko przy użyciu kodu XAML?
EDIT: postanowiłem pójść z roztworem kalkulator dla tych odsetek Oto kod:
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
return null;
if (!(value is DateTime))
return null;
var dateTime = (DateTime)value;
var dateTimeFormatter = new DateTimeFormatter(YearFormat.Full,
MonthFormat.Full,
DayFormat.Default,
DayOfWeekFormat.None,
HourFormat.None,
MinuteFormat.None,
SecondFormat.None,
new[] { "de-DE" },
"DE",
CalendarIdentifiers.Gregorian,
ClockIdentifiers.TwentyFourHour);
return dateTimeFormatter.Format(dateTime);
}
public object ConvertBack(object value, Type targetType, object parameter,
string language)
{
throw new NotImplementedException();
}
}
Jestem szczęśliwy dla każdego porad jak poprawić kod powyżej, prosimy o komentarz.
Dziękuję Mikaelowi Dúi Bolinderowi i Martinowi Suchanowi za sugestię/odpowiedź.
Może powinieneś stworzyć konwerter? –
Tak, byłaby to opcja, ale nie chcę tego robić, zanim nie mam innego (lepszego) sposobu na zrobienie tego. – Joel
W jaki sposób powiązałeś konwerter w znacznikach? Wszystkie moje kombinacje STaticResource, Relative .. itd. Kończą się niepowodzeniem. Na marginesie: wydaje mi się, że brakuje StringFormat. Jest 2014 i .NET 4.5. Ze wszystkich spotkań, które odbyły się w systemie Windows Phone 8.1, nikt nie zapoznał się z formatowaniem dat na kontrolkach DataBound? –