簡體   English   中英

WPF,Datagrid 單元格正在更改 datepicker 日期格式

[英]WPF, Datagrid cell is changing datepicker dateformat

我遇到的問題如下:我在數據網格模板列中有一個日期選擇器,在我 select 之后,日期選擇器中的日期具有我要求的格式,即 yyyy-MM-dd,然后立即在數據網格單元格中格式更改為 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 的屏幕截圖:在此處輸入圖像描述

這是數據網格單元格中的更改結果。 在此處輸入圖像描述

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>

DatePicker以某種方式格式化其日期,但在完成單元格編輯后, DatePicker消失並被TextBlock替換(它從CellEditingTemplate切換到CellTemplate )。 除非您另有說明,否則TextBlock在轉換日期時只會使用默認格式。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM