كيفية تنسيق موعد في متجر Windows التطبيق العالمي (W8.1 + WP8.1)?
-
21-12-2019 - |
سؤال
لقد لعب حولها مع ويندوز جديد متجر العالمي قالب التطبيق التي يمكن أن تستخدم ويندوز 8.1 و ويندوز فون 8.1 و أتساءل كيف شكل سلاسل في XAML كود.
ما حاولت (XAML):
<TextBlock Text="{Binding TestItem.CurrentDate, StringFormat={}{0:MM/dd/yyyy}}" />
المشكلة هي أن StringFormat
غير متوفر في Windows.UI.Xaml.Controls.TextBox
.
مايكروسوفت قد خلق نموذج مشروع الذي هو كل شيء عن تنسيق المواعيد.ولكن النهج المتبع هناك على أساس (القبيح) التعليمات البرمجية خلف.
حتى هنا هو سؤالي:
- لماذا
StringFormat
غير متوفر في متجر ويندوز Universal Apps ؟ - كيف يمكنني تنسيق السلاسل باستخدام XAML كود فقط ؟
تحرير: قررت أن أذهب مع محول حل لتلك الفائدة هنا هي رمز:
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();
}
}
أنا سعيد من أجل كل واحد المشورة كيفية تحسين التعليمات البرمجية أعلاه, لا تتردد في التعليق.
شكرا لك ميكائيل Dúi Bolinder و مارتن Suchan على اقتراحك/الجواب.
المحلول
ربط البيانات في وقت التشغيل ويندوز أنواع المشروع لا يدعم StringFormat الملكية الخيارات التي لديك هي:
- استخدام تنسيق بالفعل تاريخ الحصول على فقط في ViewModel.
- استخدام محول - يمكنك حتى إنشاء StringFormatConverter حيث يمكنك تمرير تنسيق التاريخ والوقت كما ConverterParameter. هنا الحل كيف StringFormatConverter يمكن أن تعمل.
لا تنتمي إلى StackOverflow