mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
35 lines
964 B
C#
35 lines
964 B
C#
using System;
|
|
using Artemis.UI.Shared;
|
|
using DryIoc;
|
|
using Material.Icons;
|
|
using ReactiveUI;
|
|
|
|
namespace Artemis.UI.Screens.Sidebar;
|
|
|
|
public class SidebarScreenViewModel<T> : SidebarScreenViewModel where T : MainScreenViewModel
|
|
{
|
|
public SidebarScreenViewModel(MaterialIconKind icon, string displayName) : base(icon, displayName)
|
|
{
|
|
}
|
|
|
|
public override Type ScreenType => typeof(T);
|
|
|
|
public override MainScreenViewModel CreateInstance(IContainer container, IScreen screen)
|
|
{
|
|
return container.Resolve<T>(new object[] { screen });
|
|
}
|
|
}
|
|
|
|
public abstract class SidebarScreenViewModel : ViewModelBase
|
|
{
|
|
protected SidebarScreenViewModel(MaterialIconKind icon, string displayName)
|
|
{
|
|
Icon = icon;
|
|
DisplayName = displayName;
|
|
}
|
|
|
|
public MaterialIconKind Icon { get; }
|
|
|
|
public abstract Type ScreenType { get; }
|
|
public abstract MainScreenViewModel CreateInstance(IContainer container, IScreen screen);
|
|
} |