none
WPF Datepicker 日期格式與取值 RRS feed

  • 問題

  • 設定datepicker顯示的日期格式在網路有很多方法

    然後試了一下也都沒問題

    這邊也設定一開始起始值是今天的日期

    <Window xmlns:sys="clr-namespace:System;assembly=mscorlib"></Window>
    
    <DatePicker  SelectedDate="{x:Static sys:DateTime.Now}" >
        <DatePicker.Resources>
            <Style TargetType="{x:Type DatePickerTextBox}">
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <TextBox x:Name="PART_TextBox" Text="{Binding Path=SelectedDate, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}, StringFormat='yyyyMMdd'}" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DatePicker.Resources>
    </DatePicker>

    不過在取值的時候

    我發現日期格式是錯的,抓到的值 還是會變成 2016/6/29  而不是顯示的 20160629 這樣

    string dataVal= fDate.Text;

    不知道是Xaml設定有錯還是 C#程式碼這邊寫法要修改

    因為繼續在網路找,找到的都還是在講xaml跟設定個格式

    沒看到說明取值得部份想說丟到論壇問問看各位前輩,持續爬文中~~
    • 已編輯 open852134 2016年6月29日 上午 03:54
    2016年6月29日 上午 03:32

解答

  • 您可以這樣做:

    DateTime dt=fDate.SelectedDate ?? DateTime.Now;
    string dataVal = dt.ToString("yyyyMMdd");

    • 已標示為解答 open852134 2016年6月29日 上午 04:22
    2016年6月29日 上午 04:04

所有回覆

  • 您可以這樣做:

    DateTime dt=fDate.SelectedDate ?? DateTime.Now;
    string dataVal = dt.ToString("yyyyMMdd");

    • 已標示為解答 open852134 2016年6月29日 上午 04:22
    2016年6月29日 上午 04:04
  • 感謝感謝

    後來改成這樣

    fDate.SelectedDate.Value.ToString("yyyyMMdd");

    一開始用是直接用 fDate.text.ToString("yyyyMMdd")

    結果根本沒辦法編譯~~

    原來試要用SelectedDate.Value!!

    2016年6月29日 上午 04:22