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
  • 349 berichten
    Laatst bezocht 21 sep 2017 14:37

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 Dirk Andries

Dirk Andries

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 956 berichten
    Laatst bezocht
  • LocatieGent

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
Trust me, I have no idea what I'm talking about.

#3 Ludi

Ludi

    Professional Developer

  • Leden
  • PipPipPipPip
  • 349 berichten
    Laatst bezocht 21 sep 2017 14:37

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 Dirk Andries

Dirk Andries

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 956 berichten
    Laatst bezocht
  • LocatieGent

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
Trust me, I have no idea what I'm talking about.





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 PascalBianca die tot op heden alles bijhoud sinds anno dec 2010)
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)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be