【发布时间】:2017-10-23 00:40:07
【问题描述】:
我的 Datagrid 列得到了这个 XAML:
<DataGridTemplateColumn SortMemberPath="LiefDat" Width="110" x:Name="columnLieferDatum" >
<DataGridTemplateColumn.Header >
<Grid>
<TextBlock Text="Lieferdatum"/>
</Grid>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Width="110" x:Name="lblLiefDat" Content="{Binding LiefDat, StringFormat=\{0:dd.MM.yy HH:mm:ss\}}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridRow}}"
Value="True">
<Setter TargetName="lblLiefDat" Property="Foreground" Value="white" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我从一个 XML 中读出数据,该字段的格式如下:2001-02-16T00:00:00+01:00
Datagrid 自动将此值转换为:2.16.2001,我如何将其更改为 16.2.2001,已经尝试过this
编辑
在@Dominic Jonas 的提示下,我得到了解决方案:
Content="{Binding LiefDat}" ContentStringFormat="dd.MM.yyyy"
在 XAML 中这样添加是正确的方法
【问题讨论】:
-
您是否将应用的文化设置为“de-DE”?
-
我在 InitializeComponent() 之后设置了
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");