Вы можете использовать конвертер значений в привязке. Создайте класс, который реализует IValueConverter , и установите экземпляр этого класса в качестве свойства Converter привязки.
public class DateTimeToDateConverter
: IValueConverter
{
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
// Call convertDatetimeToDate here and return the result
return value;
}
public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
В вашем XAML создайте экземпляр конвертера. Возможно, вам потребуется добавить ссылку на пространство имен:
<Window.Resources xmlns:local="clr-namespace:YourNamespace">
<local:DateTimeToDateConverter x:Key="myConverter"/>
</Window.Resources>
И используйте это в привязке:
<dg:DataGridTextColumn
Header="Order Date"
Binding="{Binding Path=OrderDate, Converter={StaticResource myConverter}}"
Width="80"/>
В 3.5 SP1 или новее вы также можете использовать свойство StringFormat в привязке для простого форматирования. Это должно отформатировать дату и время как обычную дату, выполнив эквивалент string.Format("{0:d}", OrderDate)
:
<dg:DataGridTextColumn
Header="Order Date"
Binding="{Binding Path=OrderDate, StringFormat='{}{0:d}'}"
Width="80"/>