Bunch of insane work

This commit is contained in:
TheXamlGuy
2024-02-08 22:16:58 +00:00
parent 28d79f77d0
commit 2aeb4d1b54
58 changed files with 547 additions and 326 deletions
@@ -3,12 +3,13 @@ using CommunityToolkit.Mvvm.Input;
namespace Hyperbar.Widget.MediaController.Windows;
public partial class MediaButtonViewModel<TMediaButton>(IServiceFactory serviceFactory,
public partial class MediaButtonViewModel<TMediaButton>(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory,
IViewModelTemplateFactory templateFactory,
IRelayCommand invokeCommand) :
WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory),
WidgetComponentViewModel(serviceProvider, serviceFactory, mediator, disposer, templateFactory),
INotificationHandler<Changed<MediaButton<TMediaButton>>>,
IMediaButtonViewModel
{
@@ -3,18 +3,16 @@
x:Class="Hyperbar.Widget.MediaController.Windows.MediaControllerView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:windows="using:Hyperbar.UI.Windows">
<Grid>
<ItemsControl
HorizontalAlignment="Right"
HorizontalContentAlignment="Right"
ItemTemplateSelector="{Binding Converter={windows:DataTemplateConverter}}"
ItemsSource="{x:Bind ViewModel}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Spacing="8" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
xmlns:ui="using:Hyperbar.UI.Windows">
<ItemsControl
HorizontalAlignment="Right"
HorizontalContentAlignment="Right"
ItemTemplateSelector="{ui:ViewModelTemplate}"
ItemsSource="{x:Bind ViewModel}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Spacing="8" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</UserControl>
@@ -2,17 +2,15 @@
namespace Hyperbar.Widget.MediaController.Windows;
[NotificationHandler(nameof(MediaControllerViewModel))]
public class MediaControllerViewModel :
ObservableCollectionViewModel<WidgetComponentViewModel>,
ITemplatedViewModel
ObservableCollectionViewModel<WidgetComponentViewModel>
{
public MediaControllerViewModel(ITemplateFactory templateFactory,
public MediaControllerViewModel(IViewModelTemplateFactory templateFactory,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer) : base(serviceFactory, mediator, disposer)
IDisposer disposer) : base(serviceProvider, serviceFactory, mediator, disposer)
{
TemplateFactory = templateFactory;
@@ -28,5 +26,5 @@ public class MediaControllerViewModel :
await mediator.PublishAsync<Request<MediaNext>>()));
}
public ITemplateFactory TemplateFactory { get; set; }
public IViewModelTemplateFactory TemplateFactory { get; set; }
}
@@ -3,9 +3,9 @@
x:Class="Hyperbar.Widget.MediaController.Windows.MediaControllerWidgetView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:windows="using:Hyperbar.UI.Windows">
xmlns:ui="using:Hyperbar.UI.Windows">
<FlipView
Width="360"
ItemTemplateSelector="{Binding Converter={windows:DataTemplateConverter}}"
ItemTemplateSelector="{ui:ViewModelTemplate}"
ItemsSource="{Binding}" />
</UserControl>
@@ -1,15 +1,13 @@
using Hyperbar.Widget;
namespace Hyperbar.Widget.MediaController.Windows;
namespace Hyperbar.Widget.MediaController.Windows;
public class MediaControllerWidgetViewModel(ITemplateFactory templateFactory,
public class MediaControllerWidgetViewModel(IViewModelTemplateFactory templateFactory,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
IEnumerable<MediaControllerViewModel> items) :
ObservableCollectionViewModel<MediaControllerViewModel>(serviceFactory, mediator, disposer, items),
IWidgetViewModel,
ITemplatedViewModel
ObservableCollectionViewModel<MediaControllerViewModel>(serviceProvider, serviceFactory, mediator, disposer, items),
IWidgetViewModel
{
public ITemplateFactory TemplateFactory => templateFactory;
public IViewModelTemplateFactory TemplateFactory => templateFactory;
}
@@ -2,11 +2,12 @@
namespace Hyperbar.Widget.MediaController.Windows;
public partial class MediaInformationViewModel(IServiceFactory serviceFactory,
public partial class MediaInformationViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory) :
WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory),
IViewModelTemplateFactory templateFactory) :
WidgetComponentViewModel(serviceProvider, serviceFactory, mediator, disposer, templateFactory),
INotificationHandler<Changed<MediaInformation>>
{
[ObservableProperty]