prevent canceling control events

This commit is contained in:
Pilzinsel64
2025-06-12 07:22:57 +02:00
parent bbd0017b33
commit aabcf29326
2 changed files with 8 additions and 5 deletions

View File

@@ -44,6 +44,8 @@ public class RadValidationProviderEx : Component, ISupportInitialize, IExtenderP
#region Properties
public bool AllowCancelControlEvents { get; set; } = true;
/// <summary>
/// Occurs before a RadControl is being validated.
/// </summary>
@@ -370,9 +372,8 @@ public class RadValidationProviderEx : Component, ISupportInitialize, IExtenderP
var node = DataUtils.Parse(ruleToEvaluete.Expression, ruleToEvaluete.CaseSensitive);
var result = node.Eval(null, context);
if (result is bool)
if (result is bool boolResult)
{
var boolResult = (bool)result;
var validationEventArgs = FireValidationEvent(!boolResult, (RadControl)sender, ruleToEvaluete);
if (validationEventArgs.DisplayIconAndToolTip)
boolResult = AddOrRemoveImage(validationEventArgs, (RadControl)sender, ruleToEvaluete);
@@ -381,8 +382,7 @@ public class RadValidationProviderEx : Component, ISupportInitialize, IExtenderP
boolResult = validationEventArgs.IsValid;
}
var cancelEventArgs = e as CancelEventArgs;
if (cancelEventArgs != null)
if (AllowCancelControlEvents && e is CancelEventArgs cancelEventArgs)
cancelEventArgs.Cancel = !boolResult;
if (!boolResult)

View File

@@ -20,7 +20,10 @@ public partial class RadFlyoutBase : UserControl
public static RadSvgImage? ConfirmSvg { get; set; } = null;
[Browsable(false)]
public RadValidationProviderEx ValidationProvider { get; } = new();
public RadValidationProviderEx ValidationProvider { get; } = new()
{
AllowCancelControlEvents = false,
};
[ReadOnly(true)]
public DialogResult Result { get; protected set; }