In questo DatePicker se digito una data non valida come
1/1/20001 (tasto Invio)
ottengo la seguente eccezioneDatePicker System.FormatException
Una prima eccezione di possibilità di tipo ' System.FormatException "si è verificato in mscorlib.dll
Ulteriori informazioni: String non è stato riconosciuto come DateTime valido.
Ma sembra che questo sia stato lanciato dall'associazione e non riesco a trovare un modo per gestirlo.
In di debug ho la precedenza sullo schermo
acceso traccia dello stack e dice l'errore viene gettato sul SearchItem.Date1 ottenere
Ma il problema è che ottiene non è in realtà chiamato in quella situazione
Se inserisco una data valida come 1/1/2000, vedo sia il set che il richiamo.
Se inserisco e data non valida non c'è nessuna chiamata da impostare.
Di I inserimento e data non valida e premere invio o perso lo stato attivo è appena tornato alla data precedente e non genera un'eccezione. Se la data precedente era nulla, torna a null.
Dove questo è un problema critico per me è se l'utente immette una data valida e quindi immette una data non valida che DatePicker ripristina semplicemente l'ultima data valida. Quindi l'utente non sa che la data non è cambiata.
La domanda è: come posso gestire un'eccezione di data non valida?
<DatePicker Width="140" DisplayDateStart="1/1/1990" DisplayDateEnd="12/31/2020"
SelectedDate="{Binding Path=Date1, Mode=TwoWay, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>
Se prendo
, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged
nulla cambia
private DateTime? date1;
public DateTime? Date1
{
get
{
try
{
return date1;
}
catch (Exception ex)
{
return (DateTime?)null;
throw;
}
}
set
{
if (date1 != value)
{
date1 = value;
NotifyPropertyChanged("Date1");
}
}
}
E 'questo 'DatePicker',' System.Windows.Controls.DatePicker'? perché se lo è, nessuna eccezione generata quando ho eseguito il tuo codice. –
@Bahman_Aries nessuna eccezione è la direzione sbagliata per me. Ho bisogno di prendere una data non valida. – Paparazzi