【发布时间】:2020-05-01 08:40:43
【问题描述】:
我遇到的问题如下: 我在 datagrid 模板列中有一个 datepicker,在我选择 datepicker 中的日期后,该日期具有我要求的格式,即 yyyy-MM-dd ,然后在 datagrid 单元格中,格式立即更改为 dd/MM/yyyy hh:mm:ss tt。 (这看起来像我现在正在运行的本地 Windows 日期时间格式) 我在做什么错以及为什么网格单元格会更改格式。 这是 XAML:
<DataGridTemplateColumn Header="DueDate">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=//cbc:DueDate | //cac:PaymentMeans/cbc:PaymentDueDate}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding XPath=//cbc:DueDate | //cac:PaymentMeans/cbc:PaymentDueDate}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
这是使用 datePicker 的屏幕截图: enter image description here
这是数据网格单元格中的更改结果。 enter image description here
xaml 标头:
<Window.Resources>
<local:StringToDateConverter x:Key="StringToDateConverter" />
<XmlNamespaceMappingCollection x:Key="mapping">
<XmlNamespaceMapping Uri="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" Prefix="cac" />
<XmlNamespaceMapping Uri="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" Prefix="cbc" />
<XmlNamespaceMapping Uri="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" Prefix="i" />
<XmlNamespaceMapping Uri="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" Prefix="c" />
</XmlNamespaceMappingCollection>
<XmlDataProvider x:Name="dataprovider" XmlNamespaceManager="{StaticResource mapping}" x:Key="xmlProvider" />
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Content.Text, RelativeSource={RelativeSource Self}}" Value="" >
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
【问题讨论】:
标签: c# wpf xaml datepicker datagrid