似乎当datepiceker在datagrid或datatemplate中时,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是用原始代码实现的。
答案 0 :(得分:0)
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);
}
}