implemented DI for MainWindow,

added MVVM package for Backend
master
Jonas Arnold 3 years ago
parent 2e47e3d558
commit 5d1744bbc7
  1. 9
      MultiTerm.Core/MultiTerm.Core.csproj
  2. 3
      MultiTerm.Wpf/App.xaml
  3. 47
      MultiTerm.Wpf/App.xaml.cs
  4. 23
      MultiTerm.Wpf/MainWindow.xaml.cs
  5. 9
      MultiTerm.Wpf/MultiTerm.Wpf.csproj

@ -6,4 +6,13 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Folder Include="Model\" />
<Folder Include="ViewModel\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.1.0" />
</ItemGroup>
</Project> </Project>

@ -1,8 +1,7 @@
<Application x:Class="MultiTerm.Wpf.App" <Application x:Class="MultiTerm.Wpf.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MultiTerm.Wpf" xmlns:local="clr-namespace:MultiTerm.Wpf">
StartupUri="MainWindow.xaml">
<Application.Resources> <Application.Resources>
</Application.Resources> </Application.Resources>

@ -1,17 +1,42 @@
using System; using Microsoft.Extensions.DependencyInjection;
using System.Collections.Generic; using Microsoft.Extensions.Hosting;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
namespace MultiTerm.Wpf namespace MultiTerm.Wpf;
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application public partial class App : Application
{ {
public static IHost? AppHost { get; private set; }
public App()
{
// create dependency injection host
AppHost = Host.CreateDefaultBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddSingleton<MainWindow>();
// viewmodels
//services.AddTransient<SendReceiveViewModel>();
})
.Build();
} }
protected override async void OnStartup(StartupEventArgs e)
{
await AppHost!.StartAsync();
// instanciate startup form and show
var startupForm = AppHost.Services.GetRequiredService<MainWindow>();
startupForm.Show();
base.OnStartup(e);
}
protected override async void OnExit(ExitEventArgs e)
{
await AppHost!.StopAsync();
base.OnExit(e);
}
} }

@ -1,23 +1,7 @@
using System; using System.Windows;
using System.Collections.Generic;
using System.Linq; namespace MultiTerm.Wpf;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace MultiTerm.Wpf
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window public partial class MainWindow : Window
{ {
public MainWindow() public MainWindow()
@ -25,4 +9,3 @@ namespace MultiTerm.Wpf
InitializeComponent(); InitializeComponent();
} }
} }
}

@ -7,4 +7,13 @@
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Folder Include="View\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
</ItemGroup>
</Project> </Project>

Loading…
Cancel
Save