DateTime XAML Sözdizimi

ve DatePickergibi Calendar bazı denetimlerin DateTime türünü kullanan özellikleri vardır. Bu denetimler için genellikle çalışma zamanında arka planda bir başlangıç tarihi veya saati belirtseniz de, XAML'de bir başlangıç tarihi veya saati belirtebilirsiniz. WPF XAML ayrıştırıcısı, yerleşik bir XAML metin söz dizimini DateTime kullanarak değerleri ayrıştırma işlemini işler. Bu konu başlığında XAML metin söz diziminin DateTime özellikleri açıklanmaktadır.

DateTime XAML Söz Dizimi Ne Zaman Kullanılır?

XAML'de tarihleri ayarlamak her zaman gerekli değildir ve hatta istenmeyebilir. Örneğin, çalışma zamanında bir tarih başlatmak için özelliğini kullanabilir DateTime.Now veya kullanıcı girişine göre arka planda kodda bir takvim için tüm tarih ayarlamalarınızı yapabilirsiniz. Ancak, tarihleri bir denetim şablonunda Calendar ve DatePicker olarak sabit olarak kodlamak isteyebileceğiniz senaryolar vardır. Bu DateTime senaryolar için XAML söz dizimi kullanılmalıdır.

DateTime XAML Sözdizimi Yerel Bir Davranıştır

DateTime , CLR'nin temel sınıf kitaplıklarında tanımlanan bir sınıftır. Temel sınıf kitaplıklarının CLR'nin geri kalanıyla ilişkisi nedeniyle, sınıfa uygulamak TypeConverterAttribute ve XAML'den dizeleri işlemek ve bunları çalışma zamanı nesne modelinde öğesine dönüştürmek için DateTime tür dönüştürücüsü kullanmak mümkün değildir. Dönüştürme davranışını sağlayan bir sınıf yoktur DateTimeConverter ; bu konuda açıklanan dönüştürme davranışı WPF XAML ayrıştırıcısında yereldir.

DateTime XAML Sözdizimi için Dizeleri Biçimlendir

Biçim dizesi içeren bir DateTime biçimini belirtebilirsiniz. Biçim dizeleri, değer oluşturmak için kullanılabilecek metin söz dizimini resmileştirir. DateTime mevcut WPF denetimleri için değerler genellikle saat bileşenlerini değil yalnızca tarih bileşenlerini DateTime kullanır.

XAML'de bir DateTime belirtirken, biçim dizelerinden herhangi birini birbirinin yerine kullanabilirsiniz.

Ayrıca, bu konuda özellikle gösterilmeyen biçimler ve biçim dizeleri de kullanabilirsiniz. Teknik olarak, WPF XAML ayrıştırıcısı tarafından belirtilen ve sonra ayrıştırılan herhangi DateTime bir değerin XAML'i için DateTime.Parsebir iç çağrı kullanır, bu nedenle XAML girişiniz için tarafından DateTime.Parse kabul edilen herhangi bir dizeyi kullanabilirsiniz. Daha fazla bilgi için bkz. DateTime.Parse.

Önemli

DateTime XAML söz dizimi her zaman yerel dönüştürme için olarak CultureInfo kullanıren-us. XAML öznitelik düzeyi tür dönüştürmesi bu bağlam olmadan hareket ettiğinden bu, XAML'deki değer veya xml:lang değerden Language etkilenmez. Burada gösterilen biçim dizelerini, örneğin gün ve ayın görüntülenme sırası gibi kültürel çeşitlemeler nedeniyle ilişkilendirmeye kalkışmayın. Burada gösterilen biçim dizeleri, diğer kültür ayarlarından bağımsız olarak XAML ayrıştırılırken kullanılan tam biçim dizeleridir.

Aşağıdaki bölümlerde bazı yaygın DateTime biçim dizeleri açıklanmaktadır.

Kısa Tarih Deseni ("d")

XAML'de için DateTime kısa tarih biçimi aşağıda gösterilmiştir:

M/d/YYYY

Bu, WPF denetimleri tarafından yapılan tipik kullanımlar için gerekli tüm bilgileri belirten en basit formdur ve bir saat bileşenine göre yanlışlıkla saat dilimi uzaklıklarından etkilenmez ve bu nedenle diğer biçimler üzerinde önerilir.

Örneğin, 1 Haziran 2010 tarihini belirtmek için aşağıdaki dizeyi kullanın:

3/1/2010

Daha fazla bilgi için bkz. DateTimeFormatInfo.ShortDatePattern.

Sıralanabilir DateTime Deseni ("s")

Aşağıda XAML'deki sıralanabilir DateTime desen gösterilmektedir:

yyyy'-'MM'-'dd'T'HH':'mm':'ss

Örneğin, 1 Haziran 2010 tarihini belirtmek için aşağıdaki dizeyi kullanın (saat bileşenlerinin tümü 0 olarak girilir):

2010-06-01T000:00:00

RFC1123 Deseni ("r")

RFC1123 deseni, kültür sabit olmayan nedenlerle RFC1123 desenini de kullanan diğer tarih oluşturuculardan bir dize girişi olabileceğinden kullanışlıdır. Aşağıda XAML'deki RFC1123 DateTime deseni gösterilmektedir:

ddd, dd MMM yyyy HH':'mm':'ss 'UTC'

Örneğin, 1 Haziran 2010 tarihini belirtmek için aşağıdaki dizeyi kullanın (saat bileşenlerinin tümü 0 olarak girilir):

Mon, 01 Jun 2010 00:00:00 UTC

Diğer Biçimler ve Desenler

Daha önce belirtildiği gibi, için giriş DateTime.Parseolarak kabul edilebilir herhangi bir dize olarak bir DateTime in XAML belirtilebilir. Bu, diğer resmileştirilmiş biçimleri (örneğin UniversalSortableDateTimePattern) ve belirli DateTimeFormatInfo bir form olarak resmileştirilmemiş biçimleri içerir. Örneğin, form YYYY/mm/dd için DateTime.Parsegiriş olarak kabul edilebilir. Bu konu, çalışan tüm olası biçimleri açıklamayı denemez ve bunun yerine kısa tarih desenini standart bir uygulama olarak önerir.

Ayrıca bkz.