我有一個WPF DatePicker在DataGridTemplateColumn中使用。 DatePicker綁定到名爲StartDate類型DateTime的屬性? (可空)。當我在DateTime選擇器中選擇DateText並刪除它時,將SelectedDate設置爲null,StartDate屬性不會設置爲null。你知道爲什麼或如何使它將空值綁定到源和日期?DatePicker源屬性未更新爲空
編輯:這裏是我的代碼:
<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設置爲綁定到我的xaml中的PropertyChanged,它就可以工作。也就是說,當我清除日期時,它會將該屬性設置爲null。但是,PropertyChanged已經是DatePicker.SelectedDate的DefaultUpdateSourceTrigger,那麼爲什麼它會將行爲更改爲在xaml中聲明它?
我有一個類似的問題。如果您刪除日期,然後從日期選擇器中選中日期選擇器,但它不會觸發setter所選日期綁定到 – stuicidle