Skip to content

Commit 08205de

Browse files
committed
stop double entry/click on dialog close commands fix #126
1 parent 18d6308 commit 08205de

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

MaterialDesignThemes.Wpf/DialogHost.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ public class DialogHost : ContentControl
3737
private DialogClosingEventHandler _asyncShowClosingEventHandler;
3838

3939
private Popup _popup;
40-
private DialogSession _session;
4140
private DialogOpenedEventHandler _attachedDialogOpenedEventHandler;
4241
private DialogClosingEventHandler _attachedDialogClosingEventHandler;
4342
private object _closeDialogExecutionParameter;
43+
private DialogSession _session;
4444

4545
static DialogHost()
4646
{
@@ -173,13 +173,13 @@ public static async Task<object> Show(object content, object dialogIndetifier, D
173173

174174
return targets[0]._closeDialogExecutionParameter;
175175
}
176-
176+
177177
public DialogHost()
178178
{
179179
Loaded += OnLoaded;
180180
Unloaded += OnUnloaded;
181181

182-
CommandBindings.Add(new CommandBinding(CloseDialogCommand, CloseDialogHandler));
182+
CommandBindings.Add(new CommandBinding(CloseDialogCommand, CloseDialogHandler, CloseDialogCanExecute));
183183
CommandBindings.Add(new CommandBinding(OpenDialogCommand, OpenDialogHandler));
184184
}
185185

@@ -458,6 +458,11 @@ private void OpenDialogHandler(object sender, ExecutedRoutedEventArgs executedRo
458458
executedRoutedEventArgs.Handled = true;
459459
}
460460

461+
private void CloseDialogCanExecute(object sender, CanExecuteRoutedEventArgs canExecuteRoutedEventArgs)
462+
{
463+
canExecuteRoutedEventArgs.CanExecute = _session != null;
464+
}
465+
461466
private void CloseDialogHandler(object sender, ExecutedRoutedEventArgs executedRoutedEventArgs)
462467
{
463468
if (executedRoutedEventArgs.Handled) return;

0 commit comments

Comments
 (0)