2009-02-05 10 views
5

Uso il controllo Calendar del toolkit WPF per consentire agli utenti di selezionare una data. Se la data non è ancora selezionata, la proprietà a cui è associato il SelectedDate è Null. Questo rende il calendario predefinito 1 gennaio, 0 AD. Mi piacerebbe fare qualcosa comeCome si imposta TargetNullValue su una data?

SelectedDate="{Binding UserPickedDate, TargetNullValue=Today, Mode=TwoWay}" 

Ma sia "Oggi" che "Ora" generano errori di rilegatura. Posso utilizzare TargetNullValue per impostare la data predefinita su Oggi o Ora?

risposta

12

Prova questa:

xmlns:sys="clr-namespace:System;assembly=mscorlib" 
... 

TargetNullValue={x:Static sys:DateTime.Now} 
+3

Grazie, mi è stato sicuramente avendo un congelamento del cervello lì. Per altri che lo trovano è necessario importare mscorlib, ad es. xmlns: sys = "CLR-namespace: System; assemblaggio = mscorlib". Quindi il binding è SelectedDate = "{Binding UserPickedDate, TargetNullValue = {x: Static sys: DateTime.Today}, Mode = TwoWay}". –

+0

L'impostazione di TargetNullValue su Today nel controllo Calendar ha la spiacevole conseguenza che ogni volta che si seleziona Today dopo che la proprietà associata è impostata su Null. Per questo motivo il mio codice finale imposta TargetNullValue su Now che non ha questo problema. –

+0

Questo era quello che stavo cercando. Il mio selettore di date stava ricordando l'ultimo valore dopo averlo associato a un nuovo oggetto che non aveva ancora impostato la data. – Aligned

Problemi correlati