Fixes
This commit is contained in:
@@ -21,7 +21,7 @@ public class ContentControlHandler :
|
|||||||
{
|
{
|
||||||
if (content is IActivated activated)
|
if (content is IActivated activated)
|
||||||
{
|
{
|
||||||
await activated.OnActivated();
|
await activated.Activated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ public class ContentControlHandler :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivated deactivated)
|
if (content is IDeactivated deactivated)
|
||||||
{
|
{
|
||||||
await deactivated.OnDeactivated();
|
await deactivated.Deactivated();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (content is IDisposable disposable)
|
if (content is IDisposable disposable)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class ContentDialogHandler(IDispatcher dispatcher) :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivating deactivating)
|
if (content is IDeactivating deactivating)
|
||||||
{
|
{
|
||||||
await deactivating.OnDeactivating();
|
await deactivating.Deactivating();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,7 @@ public class ContentDialogHandler(IDispatcher dispatcher) :
|
|||||||
{
|
{
|
||||||
if (content is IActivated activated)
|
if (content is IActivated activated)
|
||||||
{
|
{
|
||||||
await activated.OnActivated();
|
await activated.Activated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ public class ContentDialogHandler(IDispatcher dispatcher) :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivated deactivated)
|
if (content is IDeactivated deactivated)
|
||||||
{
|
{
|
||||||
await deactivated.OnDeactivated();
|
await deactivated.Deactivated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class ContentTemplate :
|
|||||||
{
|
{
|
||||||
if (content is IActivated activated)
|
if (content is IActivated activated)
|
||||||
{
|
{
|
||||||
await activated.OnActivated();
|
await activated.Activated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,7 @@ public class ContentTemplate :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivated deactivated)
|
if (content is IDeactivated deactivated)
|
||||||
{
|
{
|
||||||
await deactivated.OnDeactivated();
|
await deactivated.Deactivated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class FrameHandler :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivated deactivated)
|
if (content is IDeactivated deactivated)
|
||||||
{
|
{
|
||||||
await deactivated.OnDeactivated();
|
await deactivated.Deactivated();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (content is not IKeepAlive)
|
if (content is not IKeepAlive)
|
||||||
@@ -63,7 +63,7 @@ public class FrameHandler :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivating deactivating)
|
if (content is IDeactivating deactivating)
|
||||||
{
|
{
|
||||||
await deactivating.OnDeactivating();
|
await deactivating.Deactivating();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ public class FrameHandler :
|
|||||||
{
|
{
|
||||||
if (content is IActivated activated)
|
if (content is IActivated activated)
|
||||||
{
|
{
|
||||||
await activated.OnActivated();
|
await activated.Activated();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ public class FrameHandler :
|
|||||||
{
|
{
|
||||||
if (content is IDeactivated deactivated)
|
if (content is IDeactivated deactivated)
|
||||||
{
|
{
|
||||||
await deactivated.OnDeactivated();
|
await deactivated.Deactivated();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (content is IDisposable disposable)
|
if (content is IDisposable disposable)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ public class AppService(IEnumerable<IInitialization> initializers,
|
|||||||
{
|
{
|
||||||
foreach (IInitialization initializer in initializers)
|
foreach (IInitialization initializer in initializers)
|
||||||
{
|
{
|
||||||
await initializer.OnInitialize();
|
await initializer.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
publisher.Publish<StartedEventArgs>();
|
publisher.Publish<StartedEventArgs>();
|
||||||
|
|||||||
@@ -51,10 +51,10 @@ public partial class ComponentConfigurationViewModel<TConfiguration, TValue, TAc
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private object description = description;
|
private object description = description;
|
||||||
|
|
||||||
public override Task OnActivated()
|
public override Task Activated()
|
||||||
{
|
{
|
||||||
Value = valueDelegate.Invoke(configuration);
|
Value = valueDelegate.Invoke(configuration);
|
||||||
return base.OnActivated();
|
return base.Activated();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task Handle(ChangedEventArgs<TConfiguration> args)
|
public Task Handle(ChangedEventArgs<TConfiguration> args)
|
||||||
@@ -93,10 +93,10 @@ public partial class ComponentConfigurationViewModel<TConfiguration, TValue, TDe
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private TDescription description = description;
|
private TDescription description = description;
|
||||||
|
|
||||||
public override Task OnActivated()
|
public override Task Activated()
|
||||||
{
|
{
|
||||||
Value = valueDelegate.Invoke(configuration);
|
Value = valueDelegate.Invoke(configuration);
|
||||||
return base.OnActivated();
|
return base.Activated();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task Handle(ChangedEventArgs<TConfiguration> args)
|
public Task Handle(ChangedEventArgs<TConfiguration> args)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class ComponentHost(IServiceProvider services,
|
|||||||
{
|
{
|
||||||
foreach (IInitialization initializer in initializers)
|
foreach (IInitialization initializer in initializers)
|
||||||
{
|
{
|
||||||
await initializer.OnInitialize();
|
await initializer.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (IHostedService service in hostedServices)
|
foreach (IHostedService service in hostedServices)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public class ComponentInitializer(IEnumerable<IComponent> components,
|
|||||||
IServiceProvider provider) :
|
IServiceProvider provider) :
|
||||||
IInitialization
|
IInitialization
|
||||||
{
|
{
|
||||||
public async Task OnInitialize()
|
public async Task Initialize()
|
||||||
{
|
{
|
||||||
foreach (IComponent component in components)
|
foreach (IComponent component in components)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public class ConfigurationInitializer<TConfiguration>(IConfigurationReader<TConf
|
|||||||
where TConfiguration :
|
where TConfiguration :
|
||||||
class
|
class
|
||||||
{
|
{
|
||||||
public Task OnInitialize()
|
public Task Initialize()
|
||||||
{
|
{
|
||||||
if (!reader.TryRead(out TConfiguration? configuration))
|
if (!reader.TryRead(out TConfiguration? configuration))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,14 +20,14 @@ public class ContentFactory(IMediator mediator,
|
|||||||
{
|
{
|
||||||
if (args is IInitialization initialization)
|
if (args is IInitialization initialization)
|
||||||
{
|
{
|
||||||
initialization.OnInitialize();
|
initialization.Initialize();
|
||||||
}
|
}
|
||||||
}, parameters)
|
}, parameters)
|
||||||
: provider.GetRequiredKeyedService(descriptor.ContentType, args =>
|
: provider.GetRequiredKeyedService(descriptor.ContentType, args =>
|
||||||
{
|
{
|
||||||
if (args is IInitialization initialization)
|
if (args is IInitialization initialization)
|
||||||
{
|
{
|
||||||
initialization.OnInitialize();
|
initialization.Initialize();
|
||||||
}
|
}
|
||||||
}, descriptor.Key);
|
}, descriptor.Key);
|
||||||
|
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IActivated
|
public interface IActivated
|
||||||
{
|
{
|
||||||
Task OnActivated();
|
Task Activated();
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,5 @@ public interface IConfigurationInitializer<TConfiguration>
|
|||||||
where TConfiguration :
|
where TConfiguration :
|
||||||
class
|
class
|
||||||
{
|
{
|
||||||
Task OnInitialize();
|
Task Initialize();
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IDeactivated
|
public interface IDeactivated
|
||||||
{
|
{
|
||||||
Task OnDeactivated();
|
Task Deactivated();
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IDeactivating
|
public interface IDeactivating
|
||||||
{
|
{
|
||||||
Task OnDeactivating();
|
Task Deactivating();
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IInitialization
|
public interface IInitialization
|
||||||
{
|
{
|
||||||
Task OnInitialize();
|
Task Initialize();
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface ISelectable
|
public interface ISelectable
|
||||||
{
|
{
|
||||||
bool Selected { get; set; }
|
bool IsSelected { get; set; }
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ namespace Toolkit.Foundation;
|
|||||||
public interface IValidation :
|
public interface IValidation :
|
||||||
INotifyPropertyChanged
|
INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
ValidationErrorCollection Errors { get; }
|
IReadOnlyDictionary<string, string> Errors { get; }
|
||||||
|
|
||||||
bool HasErrors { get; }
|
bool HasErrors { get; }
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public partial class Observable(IServiceProvider provider,
|
|||||||
Disposer.Dispose(this);
|
Disposer.Dispose(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task OnInitialize()
|
public virtual Task Initialize()
|
||||||
{
|
{
|
||||||
if (IsInitialized)
|
if (IsInitialized)
|
||||||
{
|
{
|
||||||
@@ -72,20 +72,20 @@ public partial class Observable(IServiceProvider provider,
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool isActivated;
|
private bool isActivated;
|
||||||
|
|
||||||
public virtual Task OnActivated()
|
public virtual Task Activated()
|
||||||
{
|
{
|
||||||
IsActivated = true;
|
IsActivated = true;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public virtual Task OnDeactivated()
|
public virtual Task Deactivated()
|
||||||
{
|
{
|
||||||
IsActivated = false;
|
IsActivated = false;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task OnDeactivating() =>
|
public virtual Task Deactivating() =>
|
||||||
Task.CompletedTask;
|
Task.CompletedTask;
|
||||||
|
|
||||||
public void Revert()
|
public void Revert()
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
private readonly System.Collections.ObjectModel.ObservableCollection<TItem> collection = [];
|
private readonly System.Collections.ObjectModel.ObservableCollection<TItem> collection = [];
|
||||||
|
|
||||||
private readonly IDispatcher dispatcher;
|
private readonly IDispatcher dispatcher;
|
||||||
|
|
||||||
private readonly Queue<object> pendingEvents = [];
|
private readonly Queue<object> pendingEvents = [];
|
||||||
|
|
||||||
private readonly Dictionary<string, object> trackedProperties = [];
|
private readonly Dictionary<string, object> trackedProperties = [];
|
||||||
@@ -151,7 +152,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
{
|
{
|
||||||
if (args is IInitialization initialization)
|
if (args is IInitialization initialization)
|
||||||
{
|
{
|
||||||
initialization.OnInitialize();
|
initialization.Initialize();
|
||||||
}
|
}
|
||||||
}, parameters);
|
}, parameters);
|
||||||
|
|
||||||
@@ -403,7 +404,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
{
|
{
|
||||||
if (args is IInitialization initialization)
|
if (args is IInitialization initialization)
|
||||||
{
|
{
|
||||||
initialization.OnInitialize();
|
initialization.Initialize();
|
||||||
}
|
}
|
||||||
}, parameters);
|
}, parameters);
|
||||||
|
|
||||||
@@ -442,7 +443,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
bool moveSelection = false;
|
bool moveSelection = false;
|
||||||
if (item is ISelectable oldSelection)
|
if (item is ISelectable oldSelection)
|
||||||
{
|
{
|
||||||
if (oldSelection.Selected)
|
if (oldSelection.IsSelected)
|
||||||
{
|
{
|
||||||
moveSelection = true;
|
moveSelection = true;
|
||||||
SelectedItem = default;
|
SelectedItem = default;
|
||||||
@@ -456,7 +457,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
{
|
{
|
||||||
if (item is ISelectable newSelection)
|
if (item is ISelectable newSelection)
|
||||||
{
|
{
|
||||||
newSelection.Selected = true;
|
newSelection.IsSelected = true;
|
||||||
dispatcher.Invoke(() => SelectedItem = item);
|
dispatcher.Invoke(() => SelectedItem = item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -478,7 +479,7 @@ public partial class ObservableCollection<TItem> :
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task OnActivated()
|
public virtual Task Activated()
|
||||||
{
|
{
|
||||||
IsActivated = true;
|
IsActivated = true;
|
||||||
while (pendingEvents.Count > 0)
|
while (pendingEvents.Count > 0)
|
||||||
@@ -490,16 +491,16 @@ public partial class ObservableCollection<TItem> :
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task OnDeactivated()
|
public virtual Task Deactivated()
|
||||||
{
|
{
|
||||||
IsActivated = false;
|
IsActivated = false;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task OnDeactivating() =>
|
public virtual Task Deactivating() =>
|
||||||
Task.CompletedTask;
|
Task.CompletedTask;
|
||||||
|
|
||||||
public virtual Task OnInitialize()
|
public virtual Task Initialize()
|
||||||
{
|
{
|
||||||
if (IsInitialized)
|
if (IsInitialized)
|
||||||
{
|
{
|
||||||
@@ -634,12 +635,12 @@ public partial class ObservableCollection<TItem> :
|
|||||||
{
|
{
|
||||||
if (oldValue is ISelectable oldSelection)
|
if (oldValue is ISelectable oldSelection)
|
||||||
{
|
{
|
||||||
oldSelection.Selected = false;
|
oldSelection.IsSelected = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newValue is ISelectable newSelection)
|
if (newValue is ISelectable newSelection)
|
||||||
{
|
{
|
||||||
newSelection.Selected = true;
|
newSelection.IsSelected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -647,11 +648,11 @@ public partial class ObservableCollection<TItem> :
|
|||||||
{
|
{
|
||||||
if (item is ISelectable newSelection)
|
if (item is ISelectable newSelection)
|
||||||
{
|
{
|
||||||
if (newSelection.Selected)
|
if (newSelection.IsSelected)
|
||||||
{
|
{
|
||||||
if (SelectedItem is ISelectable oldSelection)
|
if (SelectedItem is ISelectable oldSelection)
|
||||||
{
|
{
|
||||||
oldSelection.Selected = false;
|
oldSelection.IsSelected = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatcher.Invoke(() => SelectedItem = item);
|
dispatcher.Invoke(() => SelectedItem = item);
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ public class Validation(IValidatorCollection validators) :
|
|||||||
{
|
{
|
||||||
public event PropertyChangedEventHandler? PropertyChanged;
|
public event PropertyChangedEventHandler? PropertyChanged;
|
||||||
|
|
||||||
public ValidationErrorCollection Errors { get; } = [];
|
private readonly ValidationErrorCollection errors = [];
|
||||||
|
|
||||||
|
public IReadOnlyDictionary<string, string> Errors =>
|
||||||
|
errors.AsReadOnly();
|
||||||
|
|
||||||
public bool HasErrors =>
|
public bool HasErrors =>
|
||||||
Errors.Count > 0;
|
Errors.Count > 0;
|
||||||
@@ -38,7 +41,7 @@ public class Validation(IValidatorCollection validators) :
|
|||||||
{
|
{
|
||||||
if (Errors.ContainsKey(name))
|
if (Errors.ContainsKey(name))
|
||||||
{
|
{
|
||||||
Errors.Remove(name);
|
errors.Remove(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Validators.TryGet(name, out Validator? validator))
|
if (Validators.TryGet(name, out Validator? validator))
|
||||||
@@ -47,7 +50,7 @@ public class Validation(IValidatorCollection validators) :
|
|||||||
{
|
{
|
||||||
if (!validator.TryValidate(out string? message))
|
if (!validator.TryValidate(out string? message))
|
||||||
{
|
{
|
||||||
Errors[name] = message ?? "";
|
errors[name] = message ?? "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,14 +63,14 @@ public class Validation(IValidatorCollection validators) :
|
|||||||
|
|
||||||
public bool Validate()
|
public bool Validate()
|
||||||
{
|
{
|
||||||
Errors.Clear();
|
errors.Clear();
|
||||||
foreach (Validator? validator in Validators)
|
foreach (Validator? validator in Validators)
|
||||||
{
|
{
|
||||||
if (validator.PropertyName is string name)
|
if (validator.PropertyName is string name)
|
||||||
{
|
{
|
||||||
if (!validator.TryValidate(out string? message))
|
if (!validator.TryValidate(out string? message))
|
||||||
{
|
{
|
||||||
Errors[name] = message ?? "";
|
errors[name] = message ?? "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class ValidationErrorCollection :
|
|||||||
|
|
||||||
public string this[string key]
|
public string this[string key]
|
||||||
{
|
{
|
||||||
get => items.ContainsKey(key) ? items[key] : "";
|
get => items.TryGetValue(key, out string? value) ? value : "";
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
bool replace = items.TryGetValue(key, out var old);
|
bool replace = items.TryGetValue(key, out var old);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class InvokeNavigationViewItemAction :
|
|||||||
{
|
{
|
||||||
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
|
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
|
||||||
{
|
{
|
||||||
selectable.Selected = true;
|
selectable.IsSelected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, DispatcherPriority.ContextIdle);
|
}, DispatcherPriority.ContextIdle);
|
||||||
@@ -35,7 +35,7 @@ public class InvokeNavigationViewItemAction :
|
|||||||
{
|
{
|
||||||
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
|
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
|
||||||
{
|
{
|
||||||
selectable.Selected = true;
|
selectable.IsSelected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, DispatcherPriority.ContextIdle);
|
}, DispatcherPriority.ContextIdle);
|
||||||
|
|||||||
Reference in New Issue
Block a user