Forse.
Se stavi facendo MVC direi di no. lo scopo del modello di vista è fornire un modello della vista che è possibile manipolare, interrogare e verificare nel codice. Non contiene alcuna logica di business. Ma può contenere la logica di visualizzazione. cioè quando questo è nascosto, mostra quello.
Potresti avere una mappatura uno a uno di View to ViewModel
In MVVM il modello di visualizzazione tende a contenere più logica aziendale. Dovresti essere in grado di applicare più viste a un singolo modello di visualizzazione e farle funzionare tutte. Una proprietà ShowDetail potrebbe non avere senso per alcune viste
Abbiamo quindi anche l'aspetto pratico di WPF. Dove Razor gestisce bene i binding complessi,
visiblity=@{..complex expression with multiple conditionals and function calls}
Wpf doesnt,
Visiblity="{Binding PropertyWhichIsTheCorrectType Converter={Static/Relative namespace:thingIDeclaredinXAMLEarlierMaybe}}"
Ti rende la vita molto più facile se puoi semplicemente aggiungere una proprietà alla tua VM e inserire la logica lì.
Hai anche controlli che non supportano pienamente il pattern MVVM, i Behaviors, i Converters e il code behind ecc. Tutto ciò può rendere il tuo codice disordinato se non hai un approccio comune che riutilizzi attraverso il tuo codebase.
In conclusione penso che le proprietà ShowDialogue non siano il modo peggiore per codificare. È meglio orientarsi verso un approccio MVC + VM-C più che cercare di forzare WPF in un modello MVVM purista