【问题标题】:WPF, Datagrid cell is changing datepicker dateformatWPF,Datagrid 单元格正在更改 datepicker dateformat
【发布时间】: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


    【解决方案1】:

    DatePicker 以某种方式格式化其日期,但在完成单元格编辑后,DatePicker 消失并被TextBlock 替换(它从CellEditingTemplate 切换到CellTemplate)。 TextBlock 在转换日期时只会使用默认格式,除非您另有说明。

    试试这个:

    <TextBlock Text="{Binding XPath=//cbc:DueDate | //cac:PaymentMeans/cbc:PaymentDueDate, StringFormat={}yyyy-MM-dd}}" />
    

    【讨论】:

    • 感谢您的帮助,但遗憾的是没有任何变化。我有完全一样的问题。还有什么我可以尝试或看看的吗?
    猜你喜欢
    • 2013-07-20
    • 2016-03-29
    • 2011-05-09
    • 1970-01-01
    • 2020-03-27
    • 2015-11-19
    • 1970-01-01
    • 2011-06-29
    • 2023-03-28
    相关资源
    最近更新 更多