Get ContentControl navigation working

This commit is contained in:
TheXamlGuy
2024-02-11 18:09:22 +00:00
parent 565c6866d8
commit 812556f8b0
133 changed files with 335 additions and 195 deletions
@@ -2,12 +2,11 @@
<UserControl
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:ui="using:Hyperbar.UI.Windows">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ItemsControl
HorizontalAlignment="Right"
HorizontalContentAlignment="Right"
ItemTemplateSelector="{Binding Template}"
ItemTemplateSelector="{Binding ViewModelTemplateSelector}"
ItemsSource="{x:Bind ViewModel}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
@@ -7,14 +7,14 @@ namespace Hyperbar.Widget.MediaController.Windows;
public class MediaControllerViewModel :
ObservableCollectionViewModel<WidgetComponentViewModel>
{
public MediaControllerViewModel(IViewModelTemplate template,
public MediaControllerViewModel(IViewModelTemplateSelector viewModelTemplateSelector,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IPublisher publisher,
ISubscriber subscriber,
IDisposer disposer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
{
Template = template;
viewModelTemplateSelector = viewModelTemplateSelector;
Add<MediaInformationViewModel>();
@@ -28,5 +28,5 @@ public class MediaControllerViewModel :
await publisher.PublishAsync<Request<MediaNext>>()));
}
public IViewModelTemplate Template { get; }
public IViewModelTemplateSelector ViewModelTemplateSelector { get; }
}
@@ -5,6 +5,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<FlipView
Width="360"
ItemTemplateSelector="{Binding Template}"
ItemTemplateSelector="{Binding ViewModelTemplateSelector}"
ItemsSource="{Binding}" />
</UserControl>
@@ -2,7 +2,7 @@
namespace Hyperbar.Widget.MediaController.Windows;
public class MediaControllerWidgetViewModel(IViewModelTemplate template,
public class MediaControllerWidgetViewModel(IViewModelTemplateSelector viewModelTemplateSelector,
IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IPublisher publisher,
@@ -12,5 +12,5 @@ public class MediaControllerWidgetViewModel(IViewModelTemplate template,
ObservableCollectionViewModel<MediaControllerViewModel>(serviceProvider, serviceFactory, publisher, subscriber, disposer, items),
IWidgetViewModel
{
public IViewModelTemplate Template => template;
public IViewModelTemplateSelector ViewModelTemplateSelector => viewModelTemplateSelector;
}