WPF Calendar ve DatePicker Kullanımı
26-12-2014
WPF iki tür date control içerir: Calendar ve DatePicker. İki control'de kullanıcının tarih seçmesini sağlar. DatePicker daha az yer kaplar ve drop-down ok sağlar. Kullanıcı bu oka tıkladığı zaman tarihi seçmek için bir popup çıkar.
DatePicker control'ünün SelectedDateChanged eventi ile veya Calendar control'ünün SelectedDatesChanged eventini kullanarak birden çok tarih seçebiliriz veya bazı tarihlerin seçilmesini engelleyebiliriz.
Örnek:
Calendar control'ünün bazı önemli event'ları:
DisplayDateChanged: Calendar üzerinde farklı bir ay görüntülendiği zaman meydana gelir.
CalendarOpened ve CalendarClosed: Calendar gösterildiği veya gizlendiği zaman meydana gelir.
DateValidationError: Tarih seçilirken bir text box kullanılmışsa ve kullanıcı text box içerisine tarih formatında bir değer girmediği zaman meydana gelir. Bu event meydana geldiği zaman kullanıcıyı bilgilendirmek için aşağıdaki gibi kod yazılabilir:
DatePicker control'ünün SelectedDateChanged eventi ile veya Calendar control'ünün SelectedDatesChanged eventini kullanarak birden çok tarih seçebiliriz veya bazı tarihlerin seçilmesini engelleyebiliriz.
Örnek:
<Calendar SelectedDatesChanged="Calendar_SelectedDatesChanged" SelectionMode="MultipleRange"></Calendar>
private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { // Check all the newly added items. foreach (DateTime selectedDate in e.AddedItems) { if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) || (selectedDate.DayOfWeek == DayOfWeek.Sunday)) { // Seçilen tarih çıkarılır. ((Calendar)sender).SelectedDates.Remove(selectedDate); } } }
Calendar control'ünün bazı önemli event'ları:
DisplayDateChanged: Calendar üzerinde farklı bir ay görüntülendiği zaman meydana gelir.
CalendarOpened ve CalendarClosed: Calendar gösterildiği veya gizlendiği zaman meydana gelir.
DateValidationError: Tarih seçilirken bir text box kullanılmışsa ve kullanıcı text box içerisine tarih formatında bir değer girmediği zaman meydana gelir. Bu event meydana geldiği zaman kullanıcıyı bilgilendirmek için aşağıdaki gibi kod yazılabilir:
private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e) { lblError.Text = "'" + e.Text + "' is not a valid value because " + e.Exception.Message; }