Penso che quello che stai vedendo è un concetto chiamato bind-through, cioè se il tuo modello ha una proprietà chiamata name e il tuo modello di visualizzazione espone questa proprietà senza ulteriori modifiche o conversioni, quindi puoi associarti al modello in modo che sarebbe.
Pseudo codice:
{Binding: MyViewModel.MyModel.Name}
Questo è fatto per ridurre la quantità di proprietà di Fluff sul modello di vista, ma sfortunatamente è anche una cattiva idea a lungo termine. Il concetto di un modello di vista è quello di garantire che la vista non abbia una dipendenza dal modello. Impegnandoti ora devi assicurarti che il tuo modello contenga una proprietà chiamata name altrimenti la tua implementazione si interromperà.
Se si esegue il binding solo per il modello di visualizzazione, tuttavia, è possibile modificare il modello e la vista non lo saprà mai, poiché vedrà sempre solo la proprietà Name sul modello di visualizzazione.
Ora questo può essere mitigato in determinate circostanze se il tuo modello è basato su un'interfaccia. Quindi se l'interfaccia avesse un IBaseDetails che esponeva la proprietà ModuleName allora potevi:
Pseudo codice:
{Binding: MyViewModel.MyModel.ModuleName}
Fintanto che tutti i modelli che fai soddisfano l'interfaccia IBaseDetails, sei d'accordo, tuttavia tieni presente che si tratta di un caso limite e in generale il 90% è sempre meglio avvolgere il tuo modello di visualizzazione attorno ai modelli che copre.