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);
}
}
当 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);
}
}