Как изменить формат даты - PullRequest
       2

Как изменить формат даты

0 голосов
/ 05 октября 2018

Я получаю дату в этом формате 2018-10-03, и я хотел бы перейти на этот формат 03/10/2018

<Label Text="{Binding cmPaymentDate, StringFormat='{0:dd/MM/yyyy}'}"  TextColor="White" Font="14"/>

1 Ответ

0 голосов
/ 05 октября 2018

вы можете попробовать использовать конвертер.Другое дело, что это должен быть DateTime, иначе stringFormat не будет иметь никакого эффекта.

<Window x:Class="StackPoC.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:StackPoC"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<StackPanel>
    <StackPanel.Resources>
        <local:DateConverter x:Key="DateConverter" />
    </StackPanel.Resources>
    <TextBlock Text="{Binding CmPaymentDate, Converter={StaticResource DateConverter}}"  Foreground="Black" FontSize="14"/>
</StackPanel>

Code-Behind

public partial class MainWindow : Window, INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private DateTime _cmPaymentDate;
    public DateTime CmPaymentDate
    {
        get
        {
            return _cmPaymentDate;
        }
        set
        {
            _cmPaymentDate = value;
            OnPropertyChanged("CmPaymentDate");
        }
    }

    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = this;

        CmPaymentDate = new DateTime(2018, 09, 23);
    }

    // Create the OnPropertyChanged method to raise the event
    protected void OnPropertyChanged(string name)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
    }
}

и конвертер:

public class DateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        DateTime dt = (DateTime)value;
        return dt.ToString("dd/MM/yyyy");
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...