更新整理

This commit is contained in:
GG Z
2025-04-24 20:56:44 +08:00
parent 155cef46f8
commit 5b6d67b571
813 changed files with 14437 additions and 12362 deletions

View File

@@ -0,0 +1,44 @@
using System.Windows;
using System.Windows.Controls;
using Microsoft.Xaml.Behaviors;
namespace ShrlAlgoToolkit.Mvvm.Behaviors;
/// <summary>
/// 在xaml的资源中声明viewModel继承IValidationExceptionHandler通过IsValid判断能否执行
/// </summary>
public class ValidationRuleBehavior : Behavior<FrameworkElement>
{
private int errorCount;
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.AddHandler(Validation.ErrorEvent, new EventHandler<ValidationErrorEventArgs>(OnValidationError));
}
protected override void OnDetaching()
{
AssociatedObject.RemoveHandler(Validation.ErrorEvent, new EventHandler<ValidationErrorEventArgs>(OnValidationError));
}
private void OnValidationError(object sender, ValidationErrorEventArgs e)
{
if (AssociatedObject.DataContext is IValidationExceptionHandler handler)
{
if (e.OriginalSource is UIElement elem)
{
if (e.Action == ValidationErrorEventAction.Added)
{
errorCount++;
}
else if (e.Action == ValidationErrorEventAction.Removed)
{
errorCount--;
}
}
handler.IsValid = errorCount == 0;
}
}
}