Springen naar inhoud


WPF

Datagrid With Datepicker And Dateformat



  • Log in a.u.b. om te beantwoorden
Er zijn 3 reacties in dit onderwerp

#1 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 360 berichten
    Laatst bezocht 11 sep 2022 21:06

Geplaatst op 15 september 2017 - 22:59

Visual Basic Code:
Private Sub gridAddColumnDate(dc As DataColumn)
Dim sColumnName As String = dc.ColumnName
Dim col As New DataGridTemplateColumn
Dim fac As New FrameworkElementFactory(GetType(DatePicker))
Dim b As New Binding(sColumnName)

b.StringFormat = "dd/mmm/yyyy"
fac.SetValue(DatePicker.SelectedDateProperty, B)

fac.SetValue(FontFamilyProperty, New FontFamily("Microsoft Sans Serif"))
fac.SetValue(DatePicker.VerticalContentAlignmentProperty, VerticalAlignment.Center)
fac.AddHandler(DatePicker.LostFocusEvent, New RoutedEventHandler(AddressOf DateSelectionchanged))

Dim cellil As New DataTemplate
With cellil
.VisualTree = fac
End With

With col
.Header = "Date !!"
.Width = 100
.CellEditingTemplate = cellil
.CellTemplate = cellil
.SortMemberPath = sColumnName
End With

Ctr.Columns.Add(col)
End Sub
Ik heb eeb datagrid met een datepicker control in het. Alleen het formaat van de datepicker is niet juist.
Hoe kan ik het format aanpassen.
[/vb]

#2 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1254 berichten
    Laatst bezocht 13 nov 2023 19:04
  • LocatieAlvorninha, Portugal

Geplaatst op 16 september 2017 - 10:33

Bericht bekijkenLudi, op 15 september 2017 - 22:59, zei:

Alleen het formaat van de datepicker is niet juist.
Wat is "niet juist"? Hoe is het nu en hoe wil je het?

Bericht bekijkenLudi, op 15 september 2017 - 22:59, zei:

Hoe kan ik het format aanpassen.
Bedoel je SelectedDateFormat?
Voor zover ik weet kan je enkel kiezen tussen Short en Long.

Als het over de TextBox gaat: Binding the DatePickerTextBox in WPF

#3 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 360 berichten
    Laatst bezocht 11 sep 2022 21:06

Geplaatst op 16 september 2017 - 11:34

In de code wordt
  • b.StringFormat = "dd/mmm/yyyy"  
  • fac.SetValue(DatePicker.SelectedDateProperty, B)

De datum die getoond wordt blijft het format "dd/mm/yyyy" houden


In had gehoopt dat dat "dd/mmm/yyyy"  zou worden


De selectedDateformat werkt helaas niet.


Indien ik de datepicker alleen gebruik, niet in een datagrid, dan kan ik het format wel aanpassen, via een Datepicker.textbox.

Maar als ik de datepicker in een datagrid wil gebruiken krijg ik het niet voor elkaar om het format aan te passen.


#4 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1254 berichten
    Laatst bezocht 13 nov 2023 19:04
  • LocatieAlvorninha, Portugal

Geplaatst op 19 september 2017 - 15:03

Bericht bekijkenLudi, op 16 september 2017 - 11:34, zei:

Indien ik de datepicker alleen gebruik, niet in een datagrid, dan kan ik het format wel aanpassen, via een Datepicker.textbox.
Hoe doe je het dan?

Bericht bekijkenLudi, op 16 september 2017 - 11:34, zei:

Maar als ik de datepicker in een datagrid wil gebruiken krijg ik het niet voor elkaar om het format aan te passen.
Dat kan toch gewoon met style.
In XAML  :

XAML Code:
<Window x:Class="MainWindow"
	 xmlns="http://schemas.micro...l/presentation"
	 xmlns:x="http://schemas.micro...infx/2006/xaml"
	 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
	 xmlns:mc="http://schemas.openx...atibility/2006"
	 mc:Ignorable="d"
	 Title="MainWindow" Height="350" Width="525">
<DataGrid x:Name="DataGridDatum" HorizontalAlignment="Left" Height="234" Margin="54,20,0,0" VerticalAlignment="Top" Width="408" Grid.ColumnSpan="2" AutoGenerateColumns="False" >
	 <DataGrid.Columns>
		 <DataGridTemplateColumn Header="Kies een datum">
			 <DataGridTemplateColumn.CellTemplate>
				 <DataTemplate>
					 <TextBlock Text="{Binding Datum, StringFormat=dd MMM yyyy}" />
				 </DataTemplate>
			 </DataGridTemplateColumn.CellTemplate>
			 <DataGridTemplateColumn.CellEditingTemplate>
				 <DataTemplate>
					 <DatePicker SelectedDate="{Binding Datum}">
						 <DatePicker.Resources>
							 <Style TargetType="{x:Type DatePickerTextBox}">
								 <Setter Property="Control.Template">
									 <Setter.Value>
										 <ControlTemplate>
											 <TextBox x:Name="PART_TextBox"
														 Text=
						 "{Binding SelectedDate, StringFormat=dd MMM yyyy, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
										 </ControlTemplate>
									 </Setter.Value>
								 </Setter>
							 </Style>
						 </DatePicker.Resources>
					 </DatePicker>
				 </DataTemplate>
			 </DataGridTemplateColumn.CellEditingTemplate>
		 </DataGridTemplateColumn>
	 </DataGrid.Columns>
</DataGrid>
</Window>




Code:
Visual Basic Code:
Class MainWindow
Public Sub New()
	 ' This call is required by the designer.
	 InitializeComponent()
	 ' Add any initialization after the InitializeComponent() call.
	 Dim lijst = Enumerable.Range(0, 10).Select(Function(x) New With {.Datum = DateTime.Today.AddDays(x)}).ToList()
	 DataGridDatum.ItemsSource = lijst
End Sub
End Class


Bijlage  datepickerformaat.png   20,12K   0 downloads





Ook met taq WPF voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[WPF] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)