Member 14915400 Ответов: 2

В WPF элемент управления datepicker выбрать день


Всем привет,
I have simple WPF application, and I need to let user choose value from Calendar and then work with the day only. For example, user chooses date 06/08/2020, so I need to take the "06" value and assign it to int variable, then work with it in some mathematical equations.

Unfortunately I did not find on the interner, how to exactly do it. When the user enters number into textbox, its quiet easy, you just state the variable and put the TextBox.Text as a value, like int x = int.Parse(TextBox1.Text);


Can you guys help me on this?


Что я уже пробовал:

Я пробовал некоторые вариации вроде этой

int day = Calendar1.SelectedDate.Day, but non of it worked


Большое спасибо

2 Ответов

Рейтинг:
2

Sandeep Mewara

Управление сборщиком дат WPF:

Цитата:
DatePicker-это элемент управления, который позволяет пользователю выбрать значение даты. Пользователь выбирает дату с помощью выбора выпадающего списка для значений месяца, дня и года

Ссылка: WPF - Datepicker - Tutorialspoint[^]

Образец:
private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { 
     var picker = sender as DatePicker;  
     DateTime? date = picker.SelectedDate;
		
     if (date == null) { 
        this.Title = "No date"; 
     } 
     else { 
        var daySelected = date.Day; // Day from the selected date
     } 
  }

Рекомендации:
значение datetime.Свойство Day (System) | Microsoft Docs[^]
В случае если вы ищете день недели: Как извлечь день недели из определенной даты | Microsoft Docs[^]


Рейтинг:
13

OriginalGriff

Календарь имеет свойство SelectedDate, которое возвращает значение DateTime.
Так что вы можете получить день месяца из этого как обычно:

DateTime dt = myCalendar.SelectedDate;
int dayOfMonth = dt.Day;
Если это не сработает, то либо пользователь не выбрал дату (используйте DateTime.HasValue чтобы проверить это) или он выбрал несколько дат, и в этом случае вы, вероятно, захотите посмотреть на Calendar.SelectedDates вместо этого соберите коллекцию и решите, какой из них использовать.