WPF DatePicker, отображение сегодняшней даты со связыванием с собственностью
Это возможный дубликат для установки даты по умолчанию для WPF Date Picker в текущую дату, но я пробовал код из вопроса, и он не работает, надеюсь, что мне не хватает чего-то простого
ОК, как говорится в вопросе, я хочу отображать текущую дату при загрузке представления, однако у меня есть свойство SelectedDate, ограниченное моим свойством, и я не думаю, что вы можете использовать "Текст", потому что свойство, которое я связываю с является свойством DateTime. да, я мог бы сделать конвертацию в модели, но XAML (я думаю) должен уметь это сделать для меня.
OK Я знаю, в чем проблема, дата выходила "01/01/0001", потому что, конечно, ее привязка к моему свойству, которое по умолчанию было 01/01/0001, поэтому, я думаю, мне нужно будет сделать код С# в моей собственности, чтобы сказать, если его 01/01/0001, используйте DateTime.Now, а если нет, используйте свойство.
XAML
<DatePicker HorizontalAlignment="Left"
DisplayDate="{x:Static System:DateTime.Now}"
SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120"/>
Я счастлив удалить это после того, как крупные представители считают, что это дубликат,
Что я сделал, чтобы решить...
get
{
if (m_AvailableFrom == DateTime.MinValue)
return DateTime.Now;
return m_AvailableFrom;
}
Приветствия за помощь
Ответы
Ответ 1
Я лично просто назначил DateTime.Now
свойству AvailableFrom
в коде ViewModel.
Если вы хотите использовать XAML, один из вариантов заключается в том, чтобы сделать свойство AvailableFrom
DateTime?
(с нулевым значением DateTime), а не с DateTime
. Тогда значение по умолчанию равно null, а не "01/01/0001".
Затем в вашем XAML вы можете использовать
xmlns:System="clr-namespace:System;assembly=mscorlib"
<DatePicker
HorizontalAlignment="Left"
SelectedDate="{Binding
Path=AvailableFrom,
Mode=TwoWay,
TargetNullValue={x:Static System:DateTime.Now}}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120" />
и пользовательский интерфейс отобразит текущую дату в любое время, когда AvailableFrom
имеет значение null.
Ответ 2
Ссылка MSDN для свойства SelectedDate ниже показывает его как NULL. Я думаю, вместо того, чтобы возвращать DateTime.Now, просто верните null, если он не установлен, и я подозреваю, что, как и другие элементы управления с полями с нулевым значением, он просто ничего не отображает.
DatePicker.SelectedDate Ссылка MSDN
Ответ 3
<DatePicker HorizontalAlignment="Left"
SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
DisplayDate="{Binding DateTime.Now}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120"/>
* Использовать DisplayDate после SelectedDate
отметьте, если это полезное спасибо!