2009-07-29 5 views
0

J'utilise DatePicker et TimePicker de la boîte à outils. Je dois me connecter à l'événement SelectedDateChanged et je définis également les valeurs dans le code.Silverlight DatePicket et l'initialisation TimePicker

Mon problème est que lorsque j'initialise les deux contrôles, l'événement SelectedDateChanged ne se déclenche pas de manière synchrone. C'est un gros problème pour moi car cela signifie que j'initialise le contrôle et que quelque temps plus tard l'événement se déclenche et change la valeur actuelle (parce que c'est ce que je fais dans le gestionnaire d'événements).

Y a-t-il du travail? J'ai essayé d'écouter un événement qui se déclenche une fois que tout est initialisé mais il n'y a rien à part l'évènement Loaded de chaque contrôle (ce qui est vraiment moche et se déclenche chaque fois que l'onglet sur lequel les contrôles sont activés).

EDIT: mon problème a semblé disparaître pendant un moment alors je n'ai pas pris la peine de le regarder au cas où il reviendrait. Maintenant, il a fait :(

J'utilise MVVM et initialiser les contrôles dans la vue dans le constructeur. Puis, quand la machine virtuelle obtient la vue, il définit la valeur par défaut ainsi.

Malheureusement, au moment où le VM définit la valeur que les contrôles n'ont pas initialisée et arrive à s'initialiser eux-mêmes quelque temps plus tard (même si je les ai définis dans le constructeur) .Il remplace ensuite les valeurs par défaut

+0

J'ai du mal à comprendre la question - est-ce que le problème est que, lorsque SelectedDateChanged se déclenche, vous avez besoin de savoir si l'appel provient d'une partie de votre code ou d'ailleurs? Si c'est difficile à expliquer, pourriez-vous poster un petit échantillon? –

Répondre

0

Il y a vraiment un problème. une solution de contournement très simple: si je lie le contrôle et n'écoute pas l'événement SelectedDate, je reçois le changement de manière synchrone et tout fonctionne bien. Il m'a fallu des années pour comprendre cela, mais maintenant ça marche.