AutoCatAvalonia/AutoCat/Utils/ViewModelProvider.cs
2023-07-19 00:42:11 +03:00

24 lines
629 B
C#

using System;
using Avalonia;
using Avalonia.Markup.Xaml;
namespace AutoCat.Utils;
public class ViewModelProvider: MarkupExtension
{
private readonly Type _viewModelType;
public ViewModelProvider(Type viewModelType)
{
_viewModelType = viewModelType;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (Application.Current is App app)
return app.AppHost.Services.GetService(_viewModelType)
?? throw new Exception("Error finding ViewModel");
else
throw new Exception("Error getting App instance");
}
}