|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Date range: relazione tra due datepicker
[Scusatemi, all'inizio del titolo ho dimenticato si inserire [WPF], chiedo ai moderatori di aggiornalo se possibile]
Giorno a tutti, nella mia applicazione WPF, vorrei utilizzare due datepicker per permettere all'utente di selezionare un range temporale. Vorrei che, quando l'utente selezione una data nel 1° datepicker, automaticamente venga aggiornato il 2° datepicker in particolare: 1) il focus venga messo sulla giorno del 1° datepicker + 1 2) vengono disabilitati tutti i giorni precedenti a quelli selezionati sul 1° datepicker. Il funzionamento dovrebbe essere identico a quello presente in un qualunque sistema di booking presente online. Come posso gestirlo? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Come consiglio generale ti suggerisco di dare sempre un'occhiata alla documentazione online come prima risorsa.
L'MSDN è uno strumento davvero completo e con una quantità di documentazione, tutorial ed esempi tra le migliori nel suo genere. Comunque, tornando alla domanda, il DatePicker ha una serie di proprietà che fanno al tuo caso: DisplayDateStart DisplayDateEnd SelectedDate È inoltre definito un evento apposito per reagire alla variazione della data selezionata: SelectedDateChanged Per approfondire dai un'occhiata alla pagina della documentazione. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Kendall,
grazie ai tuoi consigli ho risolto: Questi sono i miei due datepicker: Codice:
<DatePicker Height="25" HorizontalAlignment="Left" Margin="3,12,0,0" Name="fromDatePicker" VerticalAlignment="Top" Width="115" SelectedDateChanged="fromDatePicker_SelectedDateChanged" /> <DatePicker Height="25" HorizontalAlignment="Left" Margin="-115,45,0,0" Name="toDatePicker" VerticalAlignment="Top" Width="115" /> Codice:
private void fromDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
var fromPicker = sender as DatePicker;
DateTime? data = fromPicker.SelectedDate;
if (data != null)
{
toDatePicker.SelectedDate = data;
toDatePicker.DisplayDateStart = data;
}
}
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Solo una annotazione. Nel primo post dicevi che la data selezionata nel secondo picker doveva essere (giustamente) quella successiva a quella selezionata nel primo. Nel metodo che hai scritto invece la fai puntare al medesimo giorno. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Si, hai ragione, grazie per l'attenzione.
Codice:
/* DatePicker */
private void fromDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
var fromPicker = sender as DatePicker;
DateTime? data = fromPicker.SelectedDate;
if (data != null)
{
toDatePicker.SelectedDate = data.Value.AddDays(1);
toDatePicker.DisplayDateStart = data.Value.AddDays(1);
}
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:37.




















