Datepicker, возвращающий только дату - PullRequest
2 голосов
/ 19 марта 2012

Я использую элемент управления Datepicker, чтобы получить дату и отобразить ее в текстовом блоке в WP7.Я хочу, чтобы он показывал только дату, а не время.Datepicker показывает только дату, но когда я хочу показать ее в TextBlock, она показывает и дату, и время.Я использую привязку данных для установки даты в DatePicker:

public class Task
{
    public DateTime Date { get; set; }
    public Task()
    {
        Date = DateTime.Now;
    }
}

XAML:

<toolkit:DatePicker Value="{Binding Mode=TwoWay, Path=Date}" FlowDirection="RightToLeft" />
<TextBlock x:Name="TxbTaskDate" Text="{Binding Date}" />

Как заставить TextBlock показывать только дату, а не время?

Ответы [ 4 ]

4 голосов
/ 19 марта 2012

Вы должны добавить StringFormat

<TextBlock x:Name="TxbTaskDate" 
           Text="{Binding Date, StringFormat='{}{0:dd.MM.yyyy}'}" />
3 голосов
/ 19 марта 2012

Попробуйте это:

<TextBlock x:Name="TxbTaskDate" Text="{Binding Date, StringFormat=d}" />
1 голос
/ 19 марта 2012

. NET DateTime всегда включает время.Ваша проблема связана с форматированием в TextBlock

<!-- untested -->
<TextBlock x:Name="TxbTaskDate" Text="{Binding Date StringFormat={0:dd-MM-yyyy}}" />
0 голосов
/ 19 марта 2012

DateTime включает компонент времени, как следует из названия.Вы можете использовать ValueConverter в привязке TextBlock, чтобы убрать время и отобразить только дату.

На высоком уровне ValueConverter примет один тип, например DateTime, и позволит вам выполнить некоторые преобразования на нем.Я бы, вероятно, вернул отформатированный string:

String.Format("{0:M/d/yyyy}", dt);

Вот хорошее хорошее вступление к ValueConverter, если вы не использовали его раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...