У меня есть WPF DatePicker, который используется в DataGridTemplateColumn.DatePicker связан со свойством с именем StartDate типа DateTime?(Nullable).Когда я выбираю DateText в средстве выбора DateTime и удаляю его, устанавливая для SelectedDate значение null, свойство StartDate не устанавливается в значение null.Знаете ли вы, почему или как заставить его связывать нулевые значения с источником, а также с датами?
РЕДАКТИРОВАТЬ: Вот мой код:
<DataGrid x:Name="dgCampaigns"
Grid.Row="1"
RowHeight="22"
AutoGenerateColumns="False"
HeadersVisibility="Column"
CanUserSortColumns="True"
CanUserAddRows="False"
CanUserResizeColumns="True"
CanUserDeleteRows="False"
BorderThickness="1"
VerticalScrollBarVisibility="Auto" HorizontalAlignment="Left" Background="Transparent"
Margin="6,10,6,10" Height="Auto" VerticalAlignment="Top">
<DataGrid.Columns>
<DataGridTextColumn Header="Campaign Name" Binding="{Binding DislayName}" CanUserSort="True" SortMemberPath="DislayName"/>
<DataGridTemplateColumn Header="Families Created After" CanUserSort="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding StartDate, }" Visibility="{Binding Path=startDateEnabled, Converter={StaticResource boolVisibilityConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Enabled" CanUserSort="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Grid.Column="1" IsChecked="{Binding Enabled}" Tag="{Binding CampaignID}" Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" HorizontalAlignment="Left" VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
public System.Nullable<System.DateTime> StartDate {
get {
return this.startDateField;
}
set {
this.startDateField = value;
}
}
РЕДАКТИРОВАТЬ: я добился небольшого прогресса, но это все еще загадка.Если я явно установлю UpdateSourceTrigger в привязке к PropertyChanged в моем xaml, это будет работать.То есть, когда я уберу дату, он установит для свойства значение null.Тем не менее, PropertyChanged уже является DefaultUpdateSourceTrigger для DatePicker.SelectedDate, так почему же он изменяет поведение на явное объявление его в xaml?