Sintassi DateTime XAML
Alcuni controlli, ad esempio Calendar e DatePicker, hanno proprietà che usano il DateTime tipo . Anche se una data o un'ora iniziale per questi controlli viene in genere specificata nel code-behind in fase di esecuzione, è possibile specificare una data o un'ora iniziale in XAML. Il parser XAML WPF gestisce l'analisi dei DateTime valori usando una sintassi di testo XAML predefinita. In questo argomento vengono descritte le specifiche della sintassi del DateTime testo XAML.
Quando usare la sintassi DateTime XAML
Impostare le date in XAML non è sempre necessario e può anche non essere appropriato. Ad esempio, è possibile utilizzare la DateTime.Now proprietà per inizializzare una data in fase di esecuzione oppure eseguire tutte le modifiche apportate alla data per un calendario nel code-behind in base all'input dell'utente. Tuttavia, esistono scenari in cui è possibile impostare date hardcoded in un Calendar e DatePicker in un modello di controllo. La DateTime sintassi XAML deve essere usata per questi scenari.
La sintassi DateTime di XAML è un comportamento nativo
DateTime è una classe definita nelle librerie di classi di base di CLR. A causa del modo in cui le librerie di classi di base sono correlate al resto di CLR, non è possibile applicare TypeConverterAttribute alla classe e usare un convertitore di tipi per elaborare stringhe da XAML e convertirle DateTime in nel modello a oggetti di runtime. Non esiste una classe DateTimeConverter
che fornisce il comportamento di conversione. Il comportamento di conversione descritto in questo argomento è nativo del parser XAML WPF.
Stringhe di formato per la sintassi DateTime XAML
È possibile specificare il formato di un DateTime oggetto con una stringa di formato. Le stringhe di formato formalizzano la sintassi del testo che può essere usata per creare un valore. DateTime i valori per i controlli WPF esistenti in genere usano solo i componenti di data e DateTime non di ora.
Quando si specifica un DateTime oggetto in XAML, è possibile usare qualsiasi stringa di formato in modo intercambiabile.
È anche possibile usare formati e stringhe di formato non illustrati in maniera specifica in questo argomento. Tecnicamente, il codice XAML per qualsiasi DateTime valore specificato e quindi analizzato dal parser XAML WPF usa una chiamata interna a DateTime.Parse, pertanto puoi usare qualsiasi stringa accettata da DateTime.Parse per l'input XAML. Per ulteriori informazioni, vedere DateTime.Parse.
Importante
La sintassi XAML DateTime usa en-us
sempre come oggetto per la CultureInfo conversione nativa. Ciò non è influenzato dal valore o xml:lang
dal Language valore nel codice XAML, perché la conversione del tipo a livello di attributo XAML agisce senza tale contesto. Non tentare di interpolare le stringhe di formato mostrate qui a causa di variazioni relative alla lingua, come l'ordine di visualizzazione di giorno e mese. Le stringhe di formato mostrate qui sono le stringhe di formato esatte usate durante l'analisi del codice XAML indipendentemente dalle altre impostazioni cultura.
Le sezioni seguenti descrivono alcune delle stringhe di formato comuni DateTime .
Schema di data breve ("d")
Di seguito viene illustrato il formato di data breve per un DateTime oggetto in XAML:
M/d/YYYY
Questo è il formato più semplice che specifica tutte le informazioni necessarie per gli utilizzi tipici per i controlli WPF e non è influenzato dalle differenze di fuso orario rispetto a un componente relativo all'ora, quindi è consigliato rispetto altri formati.
Ad esempio, per specificare la data del 1 giugno 2010, usare la stringa seguente:
3/1/2010
Per ulteriori informazioni, vedere DateTimeFormatInfo.ShortDatePattern.
Schema di data/ora ordinabile ("s")
Di seguito è illustrato il modello ordinabile DateTime in XAML:
yyyy'-'MM'-'dd'T'HH':'mm':'ss
Ad esempio, per specificare la data del 1 giugno 2010, usare la stringa seguente (tutti i componenti relativi all'ora vengono immessi come 0):
2010-06-01T000:00:00
Schema RFC1123 ("r")
Il modello RFC1123 è utile perché potrebbe essere un input di stringa da altri generatori di data che usano il modello RFC1123 per via delle impostazioni cultura invariabili. Di seguito viene illustrato il modello di RFC1123 DateTime in XAML:
ddd, dd MMM yyyy HH':'mm':'ss 'UTC'
Ad esempio, per specificare la data del 1 giugno 2010, usare la stringa seguente (tutti i componenti relativi all'ora vengono immessi come 0):
Mon, 01 Jun 2010 00:00:00 UTC
Altri formati e modelli
Come indicato in precedenza, un DateTime in XAML può essere specificato come stringa accettabile come input per DateTime.Parse. Sono inclusi altri formati formalizzati ,ad esempio UniversalSortableDateTimePattern, e formati che non vengono formalizzati come un particolare DateTimeFormatInfo formato. Ad esempio, il modulo YYYY/mm/dd
è accettabile come input per DateTime.Parse. Questo argomento non tenta di descrivere tutti i possibili formati che funzionano e invece consiglia il formato di data breve come pratica standard.
Vedi anche
.NET Desktop feedback