DataGridTemplateColumn에 WPF DatePicker가 사용되었습니다. DatePicker는 DateTime 유형의 StartDate라는 속성에 바인딩됩니다. (Nullable). DateTime 선택기에서 DateText를 선택하고 삭제할 때 SelectedDate를 null로 설정하면 StartDate 속성이 null로 설정되지 않습니다. 왜뿐만 아니라 소스와 날짜에 null 값을 바인드하는지를 알고 있습니까?DatePicker 소스 속성이 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;
}
}
편집 : 여기 내 코드입니다. 내 xaml에서 PropertyChanged 바인딩에 UpdateSourceTrigger를 명시 적으로 설정하면 작동합니다. 즉, 날짜를 지울 때 속성을 null로 설정합니다. 그러나 PropertyChanged는 이미 DatePicker.SelectedDate에 대해 DefaultUpdateSourceTrigger입니다. 그렇다면이 기능을 명시 적으로 변경하여 xaml에서 선언 할 수 있습니까?
을 누르면 발사 싶지 않기 때문에
TextBox
의 기본UpdateSourceTrigger
은LostFocus
입니다. 날짜를 삭제 한 다음 날짜 선택기에서 탭을 선택하면 선택한 날짜가 변경되지만 선택한 날짜는 선택한 날짜가 – stuicidle