La visualizzazione non diventa mai visibile quando implementa Caliburn + MEF sull'app WPF esistente

StackOverflow https://stackoverflow.com/questions/4890548

  •  28-10-2019
  •  | 
  •  

Domanda

Ho un progetto WPF esistente e voglio spostarlo su Caliburn con MEF.

My Shell è un ViewModel chiamato MainViewModel Questo apre una finestra di dialogo utilizzando DefaultWindowManager, questa è una finestra di accesso, tutto funziona bene, ma dopo aver registrato le bancarelle del programma per un po 'e poi esce. E il MainView non diventa mai visibile. Con il debug ho controllato e verificato che il MainView venga creato, non diventa mai attivo o visibile.

Ho provato a ereditare il mio MainViewModel da Screen, Ishell e NotifyProperTybase, Ishell e Ishell. Qualcuno ha idee o indizi per provare grazie.

Non sto usando Caliburn nel MainView e ViewModel oltre alla vista per visualizzare il collegamento del modello mentre ho appena preso i vecchi modelli di vista/vista che questo potrebbe avere a che fare con qualcosa? C'è un modo per trasformare la ViewModelbinder per determinati ViewModels/Visual?

È stato utile?

Soluzione 2

In realtà Rob Eisenberg di Caliburn è stato molto utile e mi ha aiutato con questo problema.

Il problema era che quando sono passato a Caliburn, LogInView è stata la prima finestra ad essere aperta ed è stata chiusa prima che la finestra MainView fosse aperta.

Windows tratta la prima finestra aperta come Mainwindow. e quando il mainwindow è chiuso, Windows controlla se altre finestre sono aperte se non si chiude l'applicazione.

Ha fornito una possibile soluzione per rendere LogInViewModel la shell e chiuderla dopo aver aperto il MAINVIEDMODEL.

Altri suggerimenti

Lo parlerò nel caso in cui il tuo problema sia lo stesso di me, in quanto mi ha rallentato un po 'di recente ... se il tuo guscio ha alcune importazioni che non sono soddisfatte, allora il guscio non apparirà e l'effetto è piuttosto confuso. Assicurati di avere [import (alichDefault = true)] come attributo o utilizzi [importmany

Tuttavia, dal momento che dici che nel debug c'è un'istanza, il problema potrebbe essere nel modo in cui stai usando Caliburn (Micro?). In questo caso, ti suggerisco di copiare un esempio di Caliburn e quindi aggiungere la tua funzionalità - almeno allora lo saprai una volta che ha funzionato.

RGDS John

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top