more settings work

This commit is contained in:
TheXamlGuy
2024-02-11 22:18:40 +00:00
parent 812556f8b0
commit 6e738becd4
33 changed files with 152 additions and 80 deletions
+5 -1
View File
@@ -43,8 +43,9 @@ public partial class App :
services.AddTransient<INavigationTargetProvider, NavigationTargetProvider>();
services.AddTransient<IViewModelContentBinder, ViewModelContentBinder>();
services.AddTransient<IViewModelTemplateSelector, ViewModelTemplateSelector>();
services.AddTransient<IViewModelTemplateProvider, ViewModelTemplateProvider>();
services.AddTransient<IViewModelTemplateSelector, ViewModelTemplateSelector>();
services.AddHandler<AppConfigurationChangedHandler>();
services.AddConfiguration((AppConfiguration args) =>
@@ -65,8 +66,11 @@ public partial class App :
services.AddContentTemplate<GeneralSettingsNavigationViewModel, GeneralSettingsNavigationView>();
services.AddContentTemplate<WidgetSettingsNavigationViewModel, WidgetSettingsNavigationView>();
services.AddContentTemplate<WidgetNavigationViewModel, WidgetNavigationView>();
services.AddContentTemplate<WidgetSettingsViewModel, WidgetSettingsView>("WidgetSettings");
services.AddHandler<WidgetNavigationViewModelEnumerator>();
services.AddTransient<IInitializer, AppInitializer>();
})
.Build();
+6
View File
@@ -20,6 +20,7 @@
<None Remove="SecondaryView.xaml" />
<None Remove="SettingsButtonView.xaml" />
<None Remove="SettingsView.xaml" />
<None Remove="WidgetNavigationView.xaml" />
<None Remove="WidgetSettingsNavigationView.xaml" />
<None Remove="WidgetSettingsView.xaml" />
</ItemGroup>
@@ -58,6 +59,11 @@
<ProjectReference Include="..\Hyperbar.Widget\Hyperbar.Widget.csproj" />
<ProjectReference Include="..\Hyperbar\Hyperbar.csproj" />
</ItemGroup>
<ItemGroup>
<Page Update="WidgetNavigationView.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Page Update="WidgetSettingsView.xaml">
<Generator>MSBuild:Compile</Generator>
-1
View File
@@ -18,5 +18,4 @@ public partial class PrimaryViewModel(IViewModelTemplateSelector viewModelTempla
private int index = index;
public IViewModelTemplateSelector ViewModelTemplateSelector => viewModelTemplateSelector;
}
+3 -1
View File
@@ -2,7 +2,9 @@
<Window
x:Class="Hyperbar.Windows.SettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactions="using:Microsoft.Xaml.Interactions.Core"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity">
<Window.SystemBackdrop>
<MicaBackdrop />
</Window.SystemBackdrop>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<NavigationViewItem
x:Class="Hyperbar.Windows.WidgetNavigationView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Content="dsfsdvfsd" />
@@ -0,0 +1,11 @@
using Microsoft.UI.Xaml.Controls;
namespace Hyperbar.Windows;
public sealed partial class WidgetNavigationView :
NavigationViewItem
{
public WidgetNavigationView() =>
InitializeComponent();
}
@@ -1,4 +1,6 @@
namespace Hyperbar.Windows;
using Hyperbar.UI.Windows;
namespace Hyperbar.Windows;
public class WidgetNavigationViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
@@ -6,6 +8,4 @@ public class WidgetNavigationViewModel(IServiceProvider serviceProvider,
ISubscriber subscriber,
IDisposer disposer,
string text) :
NavigationViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer, text)
{
}
NavigationViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer, text);
@@ -0,0 +1,15 @@
using System.Security.Policy;
namespace Hyperbar.Windows;
public class WidgetNavigationViewModelEnumerator(IServiceFactory serviceFactory,
IPublisher publisher) :
INotificationHandler<Enumerate<WidgetNavigationViewModel>>
{
public async Task Handle(Enumerate<WidgetNavigationViewModel> args,
CancellationToken cancellationToken = default)
{
await publisher.PublishAsync(new Create<WidgetNavigationViewModel>(serviceFactory
.Create<WidgetNavigationViewModel>("fo")), nameof(WidgetSettingsNavigationViewModel), cancellationToken);
}
}
@@ -6,10 +6,15 @@
xmlns:interactions="using:Microsoft.Xaml.Interactions.Core"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:ui="using:Hyperbar.UI.Windows"
Content="Widgets">
Content="Widgets"
MenuItemsSource="{Binding}"
SelectsOnInvoked="False">
<interactivity:Interaction.Behaviors>
<interactions:EventTriggerBehavior EventName="Tapped">
<ui:NavigateAction Name="WidgetSettings" TargetName="Settings" />
</interactions:EventTriggerBehavior>
<interactions:EventTriggerBehavior EventName="Loaded">
<interactions:InvokeCommandAction Command="{Binding InitializeCommand}" />
</interactions:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</NavigationViewItem>
@@ -1,4 +1,3 @@
using Hyperbar.Widget;
using Microsoft.UI.Xaml.Controls;
namespace Hyperbar.Windows;
@@ -1,9 +1,16 @@
namespace Hyperbar.Windows;
using Hyperbar.UI.Windows;
public class WidgetSettingsNavigationViewModel(IServiceProvider serviceProvider,
namespace Hyperbar.Windows;
[NotificationHandler(nameof(WidgetSettingsNavigationViewModel))]
public class WidgetSettingsNavigationViewModel(IViewModelTemplateSelector viewModelTemplateSelector,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IPublisher publisher,
ISubscriber subscriber,
IDisposer disposer,
string text) :
NavigationViewModel<WidgetNavigationViewModel>(serviceProvider, serviceFactory, publisher, subscriber, disposer, text);
NavigationViewModel<WidgetNavigationViewModel>(serviceProvider, serviceFactory, publisher, subscriber, disposer, text)
{
public IViewModelTemplateSelector ViewModelTemplateSelector => viewModelTemplateSelector;
}
+9 -14
View File
@@ -2,18 +2,13 @@
namespace Hyperbar.Windows;
public class WidgetSettingsViewModel :
ObservableCollectionViewModel<INavigationViewModel>
public class WidgetSettingsViewModel(IViewModelTemplateSelector viewModelTemplateSelector,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IPublisher publisher,
ISubscriber subscriber,
IDisposer disposer) :
ObservableCollectionViewModel<IObservableViewModel>(serviceProvider, serviceFactory, publisher, subscriber, disposer)
{
public WidgetSettingsViewModel(IViewModelTemplateSelector viewModelTemplateSelector,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IPublisher publisher,
ISubscriber subscriber,
IDisposer disposer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
{
ViewModelTemplateSelector = viewModelTemplateSelector;
}
public IViewModelTemplateSelector ViewModelTemplateSelector { get; }
}
public IViewModelTemplateSelector ViewModelTemplateSelector { get; } = viewModelTemplateSelector;
}