Chi mi conosce sa come come per me la Blendability sia una requisito essenziale nello sviluppo di un applicazione WPF/Silverlight, non tutti la pensano così ma come sappiamo il mondo è bello perchè è vario.
Oggi ho passato gran parte della mattinata a rifattorizzare del codice affinchè la design experience fosse la migliore possibile, ma malgrado tutti i tentativi in una particolare situazione la blendability non voleva saperne di funzionare senza apparente motivo.
Chi di voi ha affrontato problemi di questo tipo sa quanto sia difficile intervenire in quanto non si ha il controllo di ciò che Blend fa e non si ha traccia dei problemi incontrati, a meno che… non si usi Visual Studio!
La soluzione alla fine è abbastanza semplice:
- Apriamo la stessa soluzione in Blend e Visual Studio (è importante che entrambi lavorino sullo stesso sorgente)
- Mettiamo un breakpoint nel punto dove pensiamo che il codice venga eseguito a design time (in un ottica MVVM il punto di inizio è generalmente il ViewModelLocator che espone le istanze dei vari ViewModels)
- Usare Debug->Attach to process e agganciarsi la processo Blend.exe
Fatto questo, in Blend, aprite la pagina associata al viemodel che volete debuggare e magicamente vedrete intervenire il breakpoint e quindi avrete il controllo totale dell’esecuzione del codice a design time.
Soluzione semplice ma che, almeno nel mio caso, ha risolto un problema banale che difficilmente avrei trovato senza questo trucchetto.