2009-07-29 10 views
0

Ich verwende DatePicker und TimePicker aus dem Toolkit. Ich muss mich auf das Ereignis SelectedDateChanged einklinken und setze auch die Werte im Code.Silverlight DatePicket und TimePicker Initialisierung

Mein Problem ist, dass wenn ich beide Steuerelemente initialisiert das SelectedDateChanged Ereignis nicht synchron ausgelöst wird. Das ist ein ziemlich großes Problem für mich, weil es bedeutet, dass ich das Steuerelement initialisiere und einige Zeit später wird das Ereignis ausgelöst und ändert den aktuellen Wert (weil das ist, was ich im Event-Handler mache).

Gibt es irgendwelche Arbeit? Ich habe versucht, auf ein Ereignis zu hören, das ausgelöst wird, sobald alles initialisiert ist, aber es gibt nichts außer dem Loaded -Ereignis jedes Steuerelements (das wirklich hässlich ist und jedes Mal ausgelöst wird, wenn die Registerkarte aktiviert wird).

EDIT: mein Problem schien für eine Weile weg zu gehen, also habe ich mich nicht darum gekümmert, falls es zurückkam. Jetzt tat es :(

I MVVM verwenden und die Kontrollen innerhalb der Ansicht in den Konstruktor initialisiert werden. Wenn dann die VM die Ansicht erhält, setzt er den Standardwert als auch.

Leider durch die Zeit, die VM setzt den Wert, den die Steuerelemente nicht initialisiert haben und sich später selbst initialisieren (obwohl ich sie im Konstruktor setze). Sie überschreiben dann die Standardwerte.

+0

Ich habe eine schwere Zeit, die Frage zu verstehen - ist das Problem, dass, wenn SelectedDateChanged ausgelöst wird, Sie wissen müssen, ob der Anruf von etwas von Ihrem Code oder von woanders kam? Wenn es schwer zu erklären ist, könnten Sie eine kleine Probe veröffentlichen? –

Antwort

0

Es gibt definitiv ein Problem. Wie auch immer ich fand eine sehr einfache Problemumgehung: wenn ich das Steuerelement binde und nicht auf das SelectedDate Ereignis höre, bekomme ich die Änderung synchron und alles funktioniert gut.

Ich habe mich schon ewig damit beschäftigt, das herauszufinden, aber jetzt funktioniert es.