SelectedTournamentStore

This commit is contained in:
Natlinux81
2022-08-11 20:14:43 +02:00
parent e9b04dbe89
commit 960cf715ef
10 changed files with 93 additions and 38 deletions

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework> <TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable> <Nullable>disable</Nullable>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
</PropertyGroup> </PropertyGroup>

View File

@@ -1,4 +1,5 @@
using Apollon.WPF.ViewModels; using Apollon.WPF.Stores;
using Apollon.WPF.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration; using System.Configuration;
@@ -14,11 +15,17 @@ namespace Apollon.WPF
/// </summary> /// </summary>
public partial class App : Application public partial class App : Application
{ {
private readonly SelectedTournamentStore _selectedTournamentStore;
public App()
{
_selectedTournamentStore = new SelectedTournamentStore();
}
protected override void OnStartup(StartupEventArgs e) protected override void OnStartup(StartupEventArgs e)
{ {
MainWindow = new MainWindow() MainWindow = new MainWindow()
{ {
DataContext = new ApollonOverviewViewModel() DataContext = new ApollonOverviewViewModel(_selectedTournamentStore)
}; };
MainWindow.Show(); MainWindow.Show();

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Apollon.WPF.Models
{
public class Tournament
{
public Tournament(string organisation, string tournamentname, string category, DateTime datetime, string location)
{
Organisation = organisation;
Tournamentname = tournamentname;
Category = category;
Datetime = datetime;
Location = location;
}
public string Organisation { get; }
public string Tournamentname { get; }
public string Category { get; }
public DateTime Datetime { get; }
public string Location { get; }
}
}

View File

@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Apollon.WPF.Stores
{
public class SelectedApollonStore
{
public int MyProperty { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
using Apollon.WPF.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Apollon.WPF.Stores
{
public class SelectedTournamentStore
{
private Tournament _selectedTournament;
public Tournament SelectedTournament
{
get
{
return _selectedTournament;
}
set
{
_selectedTournament = value;
SelectedTournamentChanged?.Invoke();
}
}
public event Action SelectedTournamentChanged;
}
}

View File

@@ -1,4 +1,6 @@
using System; using Apollon.WPF.Models;
using Apollon.WPF.Stores;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@@ -8,19 +10,20 @@ namespace Apollon.WPF.ViewModels
{ {
public class ApollonOverviewDetailsViewModel : ViewModelBase public class ApollonOverviewDetailsViewModel : ViewModelBase
{ {
public string Organisation { get; } private readonly SelectedTournamentStore _selectedTournamentStore;
public string Tournamentname { get; }
public string Category { get; }
public DateTime Datetime { get; }
public string Location { get; }
public ApollonOverviewDetailsViewModel() private Tournament _selectedTournament => _selectedTournamentStore.SelectedTournament;
public bool hasSelectedTournament => _selectedTournament != null;
public string Organisation => _selectedTournament?.Organisation ?? "keine Organisation";
public string Tournamentname => _selectedTournament?.Tournamentname ?? "kein Name";
public string Category => _selectedTournament?.Category ?? "keine Kategorie";
//public DateTime Datetime => _selectedTournament
public string Location => _selectedTournament?.Location ?? "kein Ort";
public ApollonOverviewDetailsViewModel(SelectedTournamentStore selectedTournamentStore)
{ {
Organisation = "Deutscher Schützenbund"; _selectedTournamentStore = selectedTournamentStore;
Tournamentname = "Deutsche Meisterschaft 2021";
Category = "Bogenschießen im Freien";
Datetime = DateTime.Now;
Location = "Wiesbaden";
} }
} }
} }

View File

@@ -14,7 +14,8 @@ namespace Apollon.WPF.ViewModels
public ApollonOverviewListingItemViewModel(string tournamentname) public ApollonOverviewListingItemViewModel(string tournamentname)
{ {
Tournamentname = tournamentname; Tournamentname = tournamentname;
} }
} }
} }

View File

@@ -1,4 +1,5 @@
using System; using Apollon.WPF.Stores;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
@@ -12,7 +13,7 @@ namespace Apollon.WPF.ViewModels
private readonly ObservableCollection<ApollonOverviewListingItemViewModel> _apollonOverviewListingItemViewModels; private readonly ObservableCollection<ApollonOverviewListingItemViewModel> _apollonOverviewListingItemViewModels;
public IEnumerable<ApollonOverviewListingItemViewModel> ApollonOverviewListingItemViewModels => _apollonOverviewListingItemViewModels; public IEnumerable<ApollonOverviewListingItemViewModel> ApollonOverviewListingItemViewModels => _apollonOverviewListingItemViewModels;
public ApollonOverviewListingViewModel() public ApollonOverviewListingViewModel(SelectedTournamentStore _selectedTournamentStore)
{ {
_apollonOverviewListingItemViewModels = new ObservableCollection<ApollonOverviewListingItemViewModel>(); _apollonOverviewListingItemViewModels = new ObservableCollection<ApollonOverviewListingItemViewModel>();

View File

@@ -1,4 +1,5 @@
using System; using Apollon.WPF.Stores;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@@ -13,10 +14,10 @@ namespace Apollon.WPF.ViewModels
public ApollonOverviewDetailsViewModel ApollonOverviewDetailsViewModel{ get; } public ApollonOverviewDetailsViewModel ApollonOverviewDetailsViewModel{ get; }
public ICommand AddTournamentCommand { get; } public ICommand AddTournamentCommand { get; }
public ApollonOverviewViewModel() public ApollonOverviewViewModel(SelectedTournamentStore _selectedTournamentStore)
{ {
ApollonOverviewListingViewModel = new ApollonOverviewListingViewModel(); ApollonOverviewListingViewModel = new ApollonOverviewListingViewModel(_selectedTournamentStore);
ApollonOverviewDetailsViewModel = new ApollonOverviewDetailsViewModel(); ApollonOverviewDetailsViewModel = new ApollonOverviewDetailsViewModel(_selectedTournamentStore);
} }
} }
} }

View File

@@ -8,12 +8,12 @@ using System.Threading.Tasks;
namespace Apollon.WPF.ViewModels namespace Apollon.WPF.ViewModels
{ {
public class ViewModelBase : INotifyPropertyChanged public class ViewModelBase : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPrpertyChanged(string properyName = null) protected virtual void OnPropertyChanged(string propertyName = null)
{ {
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(properyName)); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
} }
} }
} }