robertino_salemi
23-04-2015, 16:09
Buonasera,
sto utilizzanto ModernDialog che visualizza un UserControl e nel quale ho integrato un custom button:
Button customButtonClose = new Button() { Content = "Close" };
customButtonClose.Click += (ss, ee) =>
{
CheckPendingChanges();
dialog.Close();
};
dialog.Buttons = new Button[] { customButtonSave, customButtonClose };
Nel metodo CheckPendingChanges():
var rsltDialog = Utils.ShowMessageYesNoClose("Are there a pending changes, save?");
if (rsltDialog == MessageBoxResult.Yes)
{
result = customFunction();
}
dove Utils.ShowMessageYesNoClose() è:
public static MessageBoxResult ShowMessageYesNoClose(string text)
{
var dlg = new ModernDialog
{
Title = (string)Application.Current.FindResource("mdAppTitle"),
Content = new BBCodeBlock { BBCode = text, Margin = new Thickness(0, 0, 0, 8) },
MinHeight = 0,
MinWidth = 0,
MaxHeight = 480,
MaxWidth = 640,
};
dlg.YesButton.Content = (string)Application.Current.FindResource("msgBoxResultYes");
dlg.NoButton.Content = (string)Application.Current.FindResource("msgBoxResultNo");
dlg.Buttons = new[] { dlg.YesButton, dlg.NoButton, customCancelClose, dlg.CancelButton };
dlg.ShowDialog();
return dlg.MessageBoxResult;
}
Ho un problema: quando clicco sul CancelButton, le due finestre vengono chiuse insieme, mentre io vorrei chiudere solo seconda, quella dove c'è la domanda.
Dove potrebbe essere l'errore?
Grazie.
sto utilizzanto ModernDialog che visualizza un UserControl e nel quale ho integrato un custom button:
Button customButtonClose = new Button() { Content = "Close" };
customButtonClose.Click += (ss, ee) =>
{
CheckPendingChanges();
dialog.Close();
};
dialog.Buttons = new Button[] { customButtonSave, customButtonClose };
Nel metodo CheckPendingChanges():
var rsltDialog = Utils.ShowMessageYesNoClose("Are there a pending changes, save?");
if (rsltDialog == MessageBoxResult.Yes)
{
result = customFunction();
}
dove Utils.ShowMessageYesNoClose() è:
public static MessageBoxResult ShowMessageYesNoClose(string text)
{
var dlg = new ModernDialog
{
Title = (string)Application.Current.FindResource("mdAppTitle"),
Content = new BBCodeBlock { BBCode = text, Margin = new Thickness(0, 0, 0, 8) },
MinHeight = 0,
MinWidth = 0,
MaxHeight = 480,
MaxWidth = 640,
};
dlg.YesButton.Content = (string)Application.Current.FindResource("msgBoxResultYes");
dlg.NoButton.Content = (string)Application.Current.FindResource("msgBoxResultNo");
dlg.Buttons = new[] { dlg.YesButton, dlg.NoButton, customCancelClose, dlg.CancelButton };
dlg.ShowDialog();
return dlg.MessageBoxResult;
}
Ho un problema: quando clicco sul CancelButton, le due finestre vengono chiuse insieme, mentre io vorrei chiudere solo seconda, quella dove c'è la domanda.
Dove potrebbe essere l'errore?
Grazie.