Il controllo DatePicket di Silverlight 2.0

Articolo introduttivo di un controllo per la visualizzazione delle date.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

Il controllo DataPicket è simile al controllo calendar, solo per il fatto che il calendario del mese o anno, viene visualizzato solo nel caso che si fa click sull’icona rappresentativa e la data viene visualizzata in una casella.
Ma vediamo in dettaglio l’utilizzo di questo controllo.

Creazione del progetto

Dopo aver creato un progetto di tipo Silverlight, inserite nella parte xaml, un controllo StackPanel ed un controllo DatePicket. Qui di seguito si riporta il codice XAML, con alcune proprietà impostate.

<StackPanel>
            <basics:DatePicker  DisplayDate="08/08/2009"  DisplayDateStart="07/01/2009" DisplayDateEnd="01/01/2010"    IsTodayHighlighted="False" SelectedDateChanged="DatePicker_SelectedDateChanged" SelectedDateFormat="Long"  FirstDayOfWeek="Monday"  Name="dtpCalendario" CalendarClosed="DatePicker_CalendarClosed"></basics:DatePicker>
        </StackPanel>

                   

Le varie proprietà, permettono di impostare alcuni parametri del controllo, per esempio la proprietà dispalydate, imposta la data da visualizzare ossia il mese e giorno che verranno visualizzati. Va ricordato, che anche in questo controllo, come in quello del calendario, il formato delle date è di tipo mese/giorno/anno.
La proprietà DispalyDateStart, imposta la data in cui il calendario visualizzerà come data di inizio del calendario, prima di quella data non si potranno visualizzare altri periodi. Mentre la proprietà DisplayDateEnd, imposta la data limite in questo modo non si potrà selezionare una data successiva a quella impostata nella proprietà.
La proprietà IsToDayHighlinghted impostata a False, fa si che nel calendario che viene aperto non è evidenziato il giorno odierno. La proprietà FirstDayOfWeek, permette di impostare l’inizio dei giorni della settimana in un determinato giorno della settimana, nel nostro caso lunedì. L’evento SelectedDateChanged, si verifica quando viene cambiata la data, mentre l’evento CalendarClosed, si verifica quando il calendario viene chiuso.


Stesura del codice .Net


Ora  occorre scrivere il codice per la gestione degli eventi, in particolare nel momento in cui viene chiuso il calendario e quando cambia la data selezionata.
Dopo aver impostato nel file xaml, l’evento calendarClosed, passiamo in visualizzazione codice.

Qui di seguito riportiamo il codice in cui visualizza la data selezionata per l’evento CalendarClosed.

Codice VB.Net


Private Sub DatePicker_CalendarClosed(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        MessageBox.Show("Data: " & dtpCalendario.SelectedDate.Value.ToShortDateString(), "Data", MessageBoxButton.OK)
    End Sub

Codice C#

  private void DatePicker_CalendarClosed(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Data: " + dtpCalendario.SelectedDate.Value.ToShortDateString(), "Data", MessageBoxButton.OK);
        }



Come si vede dal codice illustrato precedentemente, tramite la proprietà SelectedDate, dell’oggetto datePicket, viene visualizzata a video la data.
Dopo aver impostato il nel file xaml l’evento SelectedDateChanged, passare in visualizzazione codice e scrivere il codice riportato qui di seguito.

Codice VB.Net

    Private Sub DatePicker_SelectedDateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs)
        If e.RemovedItems Is Nothing OrElse e.RemovedItems.Count = 0 Then
            MessageBox.Show("Data prima della modifica da null a" & e.AddedItems(0))
        Else
            MessageBox.Show("Data prima della modifica da  " & e.RemovedItems(0) & " a " & e.AddedItems(0))
        End If
    End Sub



Codice C#

private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.RemovedItems == null || e.RemovedItems.Count == 0)
            {
                MessageBox.Show("Data prima della modifica da null a" + e.AddedItems[0]);
            }
            else
            {
                MessageBox.Show("Data prima della modifica da  " + e.RemovedItems[0] + " a " + e.AddedItems[0]);
            }
        }


Il listato del codice precedente, effettua un controllo sulla proprietà RemovedItems, di un oggetto di tipo SelectionChangedEventArgs, nel quale verifica se è la prima modifica (0) oppure no.
Con la proprietà AddedItems e RemoveItems, rileviamo la data modificata e quella prima della modifica.

Conclusioni

L’articolo ha voluto fornire le basi dell’utilizzo di questo controllo, adatto per la gestione delle date.
Tramite la parola download potete scaricare il progetto utilizzato in questo articolo, per entrambi i linguaggi di programmazione.

 Download