How can I format WPFToolkit.DataGridTextColumn by full date?
datagrid, datetime, sorting, wpf, wpftoolkit
Solution
Bind the data using a StringFormatter:
<wpfToolkit:DataGridTextColumn Header="Your Header" Binding="{Binding TheDate,StringFormat={}\{0:dd/MM/yyyy hh:mm\}}" />
Problem
I have searched and tried many methods to format a Date of Birth column by not only Month and Day, but also taking into account the Year. I can't believe this is so difficult to do. I have created several type converters which converted a string "MM/dd/yyyy" to a DateTime, tried converting to a string without the '/' characters, and converted to a string with the year first: "yyy/MM/dd". The last one actually worked, but I can't use it since the date must be displayed in "MM/dd/yyyy" format. I can't find a way to easily implement a custon sort (ICoparable) on that single column. I also searched Stack Overflow and other sites, and I am very surprised that I could not find an answer. Your help is greatly appreciated! Here is the bit of code I have: ``` <dg:DataGrid Grid.Row="10" Grid.ColumnSpan="3" ItemsSource="{Binding Path=Members}" Visibility="{Binding Path=ShowMemberResults, Converter={StaticResource boolTovisConverter}}" SelectionMode="Single" SelectionUnit="FullRow" HorizontalAlignment="Left" Name="MemberGrid" AutoGenerateColumns="False" IsReadOnly="True" SelectedItem="{Binding Path=SelectedMemberItem}" MaxHeight="200"> <dg:DataGrid.Columns> <dg:DataGridTextColumn Header="Member ID" Binding="{Binding Path=MemberID}" Width="100"/> <dg:DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}" Width="100"/> <dg:DataGridTextColumn Header="Middle" Binding="{Binding Path=MiddleInitial}" Width="50"/> <dg:DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}" Width="100"/> <dg:DataGridTextColumn Header="Suffix" Binding="{Binding Path=Title}" Width="50"/> <dg:DataGridTextColumn Header="DOB" Binding="{Binding Path=DOB, Converter={StaticResource dateConverter}}" Width="80"/> <dg:DataGridTextColumn Header="Relationship" Binding="{Binding Path=Relationship}" Width="100"/> <dg:DataGridTextColumn Header="Group Name" Binding="{Binding Path=GroupName}" Width="225"/> <dg:DataGridTextColumn Header="Address " Binding="{Binding Path=Addr1}" Width="180"/> <dg:DataGridTextColumn Header="City" Binding="{Binding Path=City}" Width="120"/> <dg:DataGridTextColumn Header="State" Binding="{Binding Path=State}" Width="45"/> <dg:DataGridTextColumn Header="Zip" Binding="{Binding Path=Zip}" Width="50"/> <dg:DataGridTextColumn Header="SSN" Binding="{Binding Path=SSN}" Width="100"/> <dg:DataGridTextColumn Header="Family Link ID" Binding="{Binding Path=FamilyLinkID}" Width="100"/> </dg:DataGrid.Columns> </dg:DataGrid> ```