In teoria, ogni vista dovrebbe avere il proprio Viewmodel. Un Viewmodel (specialmente con un'interfaccia utente basata sul Web) è il metodo per rappresentare lo stato o l'input pertinente dalla vista. Con questo in mente, ci sarebbe una modifica di Viewmodel e una creazione di Viewmodel.
Tuttavia, in pratica, la modifica e la creazione sono azioni quasi identiche per quanto riguarda la vista. Probabilmente ci sarà una minima differenza tra gli schermi (in questo caso, solo due campi?), Ed entrambi rappresentano generalmente lo stesso oggetto. Io personalmente uso lo stesso Viewmodel per entrambe le visualizzazioni, nonostante un piccolo pezzetto di differenza funzionale.
In generale, direi che motivo i campi non sono usati è rilevante se si debba riutilizzare o meno il modello. Riutilizzare un Viewmodel per rappresentare la stessa struttura di dati generale in due punti separati è probabilmente corretto, ma riutilizzare una classe solo perché accade per avere le proprietà giuste con i nomi giusti sta infrangendo il modello.
Riguardo i file, specialmente durante l'utilizzo di un IDE come Visual Studio che offre un buon project explorer, è meglio mantenere una classe per file. Quando il codice è compilato, non fa assolutamente alcuna differenza, quindi escludendo i problemi del file system, si tratta di usabilità e facilità di interazione con il programmatore. Considerando anche il controllo del codice sorgente, in cui potresti essere in grado di eseguire il commit file per file, è meglio non raggruppare più di una classe. Quando cambi una classe, solo una di queste classi viene considerata "modificata", ma tutte le altre classi nel file saranno incluse.