データベースまたはプロパティの日付を正常に表示するDatePicker
にDataGrid
オブジェクトがあります。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Date, StringFormat=dd/MM/yyyy}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
日付の前の時刻を表示したいと思います。これは私が試したものですが、うまくいきません:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Date, StringFormat='dd/MM/yyyy HH:mm:ss'}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
注:私はnotをコードビハインドで実行したいと考えています。
拡張 DateTimePicker を使用します
あなたはこのようなことをすることができます:
<DataGridTemplateColumn Header="YourDate">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<DatePicker SelectedDate="{Binding YourDate, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Margin="2 0 0 0" Text="{Binding YourDate, UpdateSourceTrigger=PropertyChanged, StringFormat='t'}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding YourDate}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
これにより、同じプロパティにバインドされているTextBoxの横にDatePickerが表示されます。 TextBoxは、日付のみを表示するStringFormatを取得しました。
UpdateSourceTriggerはPropertyChangedに設定されているため、ユーザーが競合することはありません。
さらに、他のコンポーネントを使用せずに、編集したい形式で日付を表示する場合のみを使用して、次のように実行できます。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Date,StringFormat={}{0:dd/MM/yyyy}}" VerticalAlignment="Center" HorizontalAlignment="Left">
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>