سؤال

لقد لعب حولها مع ويندوز جديد متجر العالمي قالب التطبيق التي يمكن أن تستخدم ويندوز 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 يمكن أن تعمل.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top