Существует установленная дата начала, которую я хочу применить для каждого DatePicker в моем приложении, потому что повторять следующий фрагмент не очень хорошая идея.
<DatePicker SelectedDate="{Binding Date}"
DisplayDateStart="05/01/2006"/>
Так же как и установка DisplayDateStart по умолчанию в одном месте, мне нужно иметь возможность привязать свойство SelectedDate DatePicker.
Я попытался создать пользовательский элемент управления UserControl, но нажатие на значок календаря ничего не делает (ну, текстовое поле мигает, но не появляется всплывающее окно календаря)
<UserControl x:Class="MyWpfAdd.ModDatePicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel>
DatePicker x:Name="DatePicker" DisplayDateStart="05/01/2006"/>
</DockPanel>
</UserControl>
С базовым кодом:
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace MyWpfApp
{
public partial class ModDatePicker : UserControl
{
public DateTime? SelectedDate
{
get => (DateTime?)GetValue(SelectedDateProperty);
set
{
this.DatePicker.SelectedDate = value;
SetValue(SelectedDateProperty, value);
}
}
public static readonly DependencyProperty SelectedDateProperty =
DependencyProperty.Register("SelectedDate", typeof(DateTime?), typeof(ModDatePicker), new PropertyMetadata(null));
public DateTime? DisplayDateEnd
{
get => (DateTime?)GetValue(DisplayDateEndProperty);
set
{
this.DatePicker.DisplayDateEnd = value;
SetValue(DisplayDateEndProperty, value);
}
}
public static readonly DependencyProperty DisplayDateEndProperty =
DependencyProperty.Register("DisplayDateEnd", typeof(DateTime?), typeof(ModDatePicker), new PropertyMetadata(null));
public ModDatePicker()
{
InitializeComponent();
}
}
}