Handling Dialogs in WPF with MVVM

I suggest forgoing the 1990’s modal dialogs and instead implementing a control as an overlay (canvas+absolute positioning) with visibility tied to a boolean back in the VM. Closer to an ajax type control.

This is very useful:

<BooleanToVisibilityConverter x:Key="booltoVis" />

as in:

<my:ErrorControl Visibility="{Binding Path=ThereWasAnError, Mode=TwoWay, Converter={StaticResource booltoVis}, UpdateSourceTrigger=PropertyChanged}"/>

Here’s how I have one implemented as a user control. Clicking on the ‘x’ closes the control in a line of code in the usercontrol’s code behind. (Since I have my Views in an .exe and ViewModels in a dll, I don’t feel bad about code that manipulates UI.)

Wpf dialog

Leave a Comment