<Label Content="{Binding Path=Date, Converter={StaticResource dateConverter}, ConverterParameter='Gregorian'}" />
<Label Content="{Binding Path=Date, Converter={converters:DateTimeToString}, ConverterParameter='Gregorian'}" />
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DateTime date = (DateTime)value; string calendar = (string)parameter; if (calendar == "Gregorian") return DateTimeHelpers.GregorianToString(calendar); else if (calendar == "Gregorian") return DateTimeHelpers.GregorianToString(calendar); }
public abstract class ConvertorBase<T> : MarkupExtension, IValueConverter where T : class, new() { /// <summary> /// Must be implemented in inheritor. /// </summary> public abstract object Convert(object value, Type targetType, object parameter, CultureInfo culture); /// <summary> /// Override if needed. /// </summary> public virtual object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } public override object ProvideValue(IServiceProvider serviceProvider) { return this; } }
public class DateTimeToString : ConvertorBase<DateTimeToString> { /// Format for converting DateTime to string. /// </summary> public string Format { set; private get; } /// <summary> /// Date of what calendar current instance is representing. /// </summary> public string Calendar { set; private get; } public override object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DateTime date = (DateTime)value; if (calendar == "Gregorian") return DateTimeHelpers.GregorianToString(date, Format); else if (calendar == "Gregorian") return DateTimeHelpers.GregorianToString(date, Format); } }
<Label Content="{Binding Path=Date, Converter={converters:DateTimeToString Calendar='Gregorian', Format ='Today is {0}'}}" />
<Label Content="{Binding Path=Date, Converter={converters:DateTimeToString}" />
[ValueConversion(typeof(DateTime), typeof(String))] public class DateTimeToString : ConvertorBase<DateTimeToString> { /// <summary> /// Format string. /// </summary> public string Format { set; private get; } /// <summary> /// Date of what calendar current instance is representing. /// </summary> public string Calendar { set { _calendar = value; } private get { return _calendar; } } /// <summary> /// Default calendar. /// </summary> private string _calendar = "Gregorian"; public override object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DateTime date = (DateTime)value; Debug.Assert(date != null, "Date is missing."); Debug.Assert(Format != null, "Format is missing."); if (Calendar == "Gregorian") return DateTimeHelpers.GregorianToString(date, Format); else if (Calendar == "Gregorian") return DateTimeHelpers.GregorianToString(date, Format); } }
Source: https://habr.com/ru/post/141107/
All Articles