too many to add
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using Hyperbar.Interop.Windows;
|
||||
using Hyperbar.UI.Windows;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.UI.Xaml.Markup;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Hyperbar.Widget.Windows;
|
||||
|
||||
@@ -16,6 +18,7 @@ public static class IServiceCollectionExtensions
|
||||
services.AddTransient<IProxyServiceCollection<IWidgetBuilder>>(provider =>
|
||||
new ProxyServiceCollection<IWidgetBuilder>(services =>
|
||||
{
|
||||
services.AddSingleton(provider.GetRequiredService<IList<IXamlMetadataProvider>>());
|
||||
services.AddSingleton(provider.GetRequiredService<IDispatcher>());
|
||||
services.AddTransient<IFactory<IWidgetHost, WidgetContainerViewModel?>,
|
||||
WidgetContainerFactory>();
|
||||
@@ -29,7 +32,8 @@ public static class IServiceCollectionExtensions
|
||||
services.AddHandler<WidgetViewModelEnumerator>();
|
||||
|
||||
services.AddTransient<IWidgetView, WidgetView>();
|
||||
services.AddTransient<IInitializer, WidgetResourceInitialization>();
|
||||
services.AddTransient<IInitializer, WidgetResourceInitializer>();
|
||||
services.AddTransient<IInitializer, WidgetXamlMetadataInitializer>();
|
||||
|
||||
services.AddContentTemplate<WidgetContainerViewModel, WidgetContainerView>();
|
||||
services.AddContentTemplate<WidgetButtonViewModel, WidgetButtonView>();
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
x:Class="Hyperbar.Widget.Windows.WidgetBarView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:ui="using:Hyperbar.UI.Windows">
|
||||
<ItemsControl ItemTemplateSelector="{Binding Converter={ui:DataTemplateConverter}}" ItemsSource="{Binding}">
|
||||
xmlns:windows="using:Hyperbar.UI.Windows">
|
||||
<ItemsControl ItemTemplateSelector="{Binding Converter={windows:DataTemplateConverter}}" ItemsSource="{Binding}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" />
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ using Windows.Storage;
|
||||
|
||||
namespace Hyperbar.Widget.Windows;
|
||||
|
||||
internal class WidgetResourceInitialization(IWidgetAssembly widgetAssembly) :
|
||||
internal class WidgetResourceInitializer(IWidgetAssembly widgetAssembly) :
|
||||
IInitializer
|
||||
{
|
||||
public async Task InitializeAsync()
|
||||
@@ -5,9 +5,9 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:interactions="using:Microsoft.Xaml.Interactions.Core"
|
||||
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
|
||||
xmlns:ui="using:Hyperbar.UI.Windows">
|
||||
xmlns:windows="using:Hyperbar.UI.Windows">
|
||||
<Grid>
|
||||
<ItemsControl ItemTemplateSelector="{Binding Converter={ui:DataTemplateConverter}}" ItemsSource="{Binding Mode=TwoWay}">
|
||||
<ItemsControl ItemTemplateSelector="{Binding Converter={windows:DataTemplateConverter}}" ItemsSource="{Binding Mode=TwoWay}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Spacing="8" />
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
using Microsoft.UI.Xaml.Markup;
|
||||
|
||||
namespace Hyperbar.Widget.Windows;
|
||||
|
||||
public class WidgetXamlMetadataInitializer(IWidgetAssembly widgetAssembly,
|
||||
IList<IXamlMetadataProvider> xamlMetadataProviders) :
|
||||
IInitializer
|
||||
{
|
||||
public Task InitializeAsync()
|
||||
{
|
||||
foreach (IXamlMetadataProvider xamlMetadataProvider in widgetAssembly.Assembly.ExportedTypes
|
||||
.Where(type => type.IsAssignableTo(typeof(IXamlMetadataProvider)))
|
||||
.Select(metadataType => (IXamlMetadataProvider)Activator.CreateInstance(metadataType)!))
|
||||
{
|
||||
xamlMetadataProviders.Add(xamlMetadataProvider);
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user