簡體   English   中英

WPF DatePicker:自定義DisplayText

[英]WPF DatePicker: Custom DisplayText

我應該為DatePicker DisplayDate使用自定義格式,但是我的問題是,無法使用標准的自定義格式標簽(例如yyyyyd等)來創建該格式。

有沒有一種方法可以將SelectedDate綁定到DateTime屬性,將DisplayText綁定到字符串屬性?

好吧,您可以為特定的DatePicker日期格式使用StringFormat (檢查此示例: 更改WPF DatePicker的字符串格式

這是一個簡單的示例(確保ViewModel對您的xaml文件而言是正確的DataContext)

主視窗

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var vm = new ViewModel();
        DataContext = vm;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var context = (ViewModel) DataContext;
        var date = context.SelectedDate;
        MessageBox.Show(string.Format("Selected Date is {0:MM/dd/yy H:mm:ss zzz}", date));
    }
}

查看模型

public class ViewModel
{
    public DateTime SelectedDate { get; set; }
}

XAML文件

 <DatePicker VerticalAlignment="Top"
                SelectedDate="{Binding SelectedDate}" />
 <Button Content="Button"
         HorizontalAlignment="Left"
         Margin="10,74,0,0"
         VerticalAlignment="Top"
         Width="75"
         Click="Button_Click" />

您可以在顯示MessageBox時更改DateTime的格式(檢查此: https ://msdn.microsoft.com/zh-cn/library/8kb3ddd4( v=vs.110 ) .aspx

UPDATE

對於(一年中的第幾天),您可以使用:

MessageBox.Show(string.Format("Selected Date is {0:yy-}{1}", date, date.DayOfYear));

我認為您可以使用字符串格式屬性以自定義方式顯示日期

  Binding="{Binding CustomerParcelDropTime,StringFormat=\{0:dd/MM/yyyy HH:mm:ss \}}"

感謝您的回答。 我的問題是我需要的沒有格式。 我需要以兩位數顯示年份(yy),但是之后需要年份,因此沒有格式。 我當前的解決方案是編寫一個具有普通文本框和日歷彈出窗口的UserControl。 我只是希望我可以使用標准控件。

暫無
暫無

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

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