WPF DatePicker DisplayDate 绑定在内部不起作用 DataGrid/DataTemplate/ControlTemplate

WPF DatePicker DisplayDate binding does not work inside DataGrid/DataTemplate/ControlTemplate

当 datepiceker 在数据网格或数据模板中时,wpf DatePicker 的 DisplayDate 绑定似乎不起作用。

这里是示例代码

<DataGrid x:Name="grid" AutoGenerateColumns="False" IsReadOnly="True">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="StartDate" MinWidth="155">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=StartDate}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

            <DataGridTemplateColumn Header="EndDate" MinWidth="155">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>

                        <DatePicker SelectedDate="{Binding Path=EndDate}" DisplayDate="{Binding Path=StartDate}"/>

                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

public class Model
{
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }
}

显示日期停留在当前日期。不管开始日期是什么。 我尝试设置绑定模式等,但没有用。 有什么问题吗?

注意:虽然初始绑定无关紧要,INotifyPropertyChanged 是在原始代码中实现的。

https://connect.microsoft.com/VisualStudio/feedback/details/1291078

  <DatePicker DisplayDate={Binding Path=DisplayDate} Loaded="DatePicker_Loaded" />

并添加到代码中:

 private void DatePicker_Loaded(object sender, RoutedEventArgs e)
 {
             DatePicker dp = sender as DatePicker;
             if (dp != null)
             {
                     dp.ClearValue(DatePicker.DisplayDateProperty);
             }
 }