From d152bf121d283f67bae47e969fb52eb29ee8d950 Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Sat, 25 Mar 2023 11:24:36 +0100 Subject: [PATCH] created and mapped ShellViewModel and according View --- MultiTerm.Core/MultiTerm.Core.csproj | 1 - MultiTerm.Core/ViewModel/ShellViewModel.cs | 9 +++++++++ MultiTerm.Wpf/App.xaml.cs | 3 ++- MultiTerm.Wpf/MainWindow.xaml | 6 +++--- MultiTerm.Wpf/MultiTerm.Wpf.csproj | 6 +++--- MultiTerm.Wpf/View/ShellView.xaml | 12 ++++++++++++ MultiTerm.Wpf/View/ShellView.xaml.cs | 13 +++++++++++++ 7 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 MultiTerm.Core/ViewModel/ShellViewModel.cs create mode 100644 MultiTerm.Wpf/View/ShellView.xaml create mode 100644 MultiTerm.Wpf/View/ShellView.xaml.cs diff --git a/MultiTerm.Core/MultiTerm.Core.csproj b/MultiTerm.Core/MultiTerm.Core.csproj index bbdbfe7..80ca023 100644 --- a/MultiTerm.Core/MultiTerm.Core.csproj +++ b/MultiTerm.Core/MultiTerm.Core.csproj @@ -8,7 +8,6 @@ - diff --git a/MultiTerm.Core/ViewModel/ShellViewModel.cs b/MultiTerm.Core/ViewModel/ShellViewModel.cs new file mode 100644 index 0000000..1aafa2b --- /dev/null +++ b/MultiTerm.Core/ViewModel/ShellViewModel.cs @@ -0,0 +1,9 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace MultiTerm.Core.ViewModel; + +public partial class ShellViewModel : ObservableObject +{ + [ObservableProperty] + private string title = "ShellView Test"; +} diff --git a/MultiTerm.Wpf/App.xaml.cs b/MultiTerm.Wpf/App.xaml.cs index 02639f0..a96cd2b 100644 --- a/MultiTerm.Wpf/App.xaml.cs +++ b/MultiTerm.Wpf/App.xaml.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using MultiTerm.Core.ViewModel; using System.Windows; namespace MultiTerm.Wpf; @@ -17,7 +18,7 @@ public partial class App : Application services.AddSingleton(); // viewmodels - //services.AddTransient(); + services.AddSingleton(); }) .Build(); } diff --git a/MultiTerm.Wpf/MainWindow.xaml b/MultiTerm.Wpf/MainWindow.xaml index df2a3a2..193837d 100644 --- a/MultiTerm.Wpf/MainWindow.xaml +++ b/MultiTerm.Wpf/MainWindow.xaml @@ -4,9 +4,9 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:MultiTerm.Wpf" + xmlns:vm="clr-namespace:MultiTerm.Core.ViewModel;assembly=MultiTerm.Core" + xmlns:v="clr-namespace:MultiTerm.Wpf.View" mc:Ignorable="d" Title="MultiTerm" Height="450" Width="800"> - - - + diff --git a/MultiTerm.Wpf/MultiTerm.Wpf.csproj b/MultiTerm.Wpf/MultiTerm.Wpf.csproj index 5be450a..4137eaf 100644 --- a/MultiTerm.Wpf/MultiTerm.Wpf.csproj +++ b/MultiTerm.Wpf/MultiTerm.Wpf.csproj @@ -8,12 +8,12 @@ - + + - - + diff --git a/MultiTerm.Wpf/View/ShellView.xaml b/MultiTerm.Wpf/View/ShellView.xaml new file mode 100644 index 0000000..c3f54b9 --- /dev/null +++ b/MultiTerm.Wpf/View/ShellView.xaml @@ -0,0 +1,12 @@ + + + + diff --git a/MultiTerm.Wpf/View/ShellView.xaml.cs b/MultiTerm.Wpf/View/ShellView.xaml.cs new file mode 100644 index 0000000..fc1d7d0 --- /dev/null +++ b/MultiTerm.Wpf/View/ShellView.xaml.cs @@ -0,0 +1,13 @@ +using MultiTerm.Core.ViewModel; +using System.Windows.Controls; + +namespace MultiTerm.Wpf.View; + +public partial class ShellView : UserControl +{ + public ShellView() + { + InitializeComponent(); + this.DataContext = App.AppHost!.Services.GetService(typeof(ShellViewModel)); + } +}