viewmodel ins wpf gepackt, build failed
This commit is contained in:
72
DaSaSo.Wpf/ViewModel/ProjectListViewModel.cs
Normal file
72
DaSaSo.Wpf/ViewModel/ProjectListViewModel.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using DaSaSo.Domain.Model;
|
||||
using DaSaSo.Domain.Services;
|
||||
using DaSaSo.Domain.Services.ProjectServices;
|
||||
using DaSaSo.EntityFramework.Services;
|
||||
using DaSaSo.Wpf.ViewModel.Commands;
|
||||
using DaSaSo.Wpf.ViewModel.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace DaSaSo.Wpf.ViewModel
|
||||
{
|
||||
public class ProjectListViewModel : BaseViewModel
|
||||
{
|
||||
private ProjectDataService genericDataService;
|
||||
|
||||
private IActualProject actualProject;
|
||||
private IRenavigator renavigator;
|
||||
public ObservableCollection<Project> Projekte { get; }
|
||||
private Project? _selectedProject;
|
||||
|
||||
public Project SelectedProject
|
||||
{
|
||||
get => _selectedProject;
|
||||
set
|
||||
{
|
||||
if(_selectedProject != value)
|
||||
{
|
||||
_selectedProject = value;
|
||||
OnPropertyChanged();
|
||||
OnPropertyChanged(nameof(CanSelectProject));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ICommand SelectCommand { get; set; }
|
||||
public ICommand AddCommand { get; set; }
|
||||
public ICommand EditCommand { get; set; }
|
||||
public bool CanSelectProject => SelectedProject != null;
|
||||
public ProjectListViewModel(IDataService<Project> genericDataService, IActualProject actualProject, IRenavigator renavigator, IProjectService projectService)
|
||||
{
|
||||
Projekte = new ObservableCollection<Project>();
|
||||
if (genericDataService == null) throw new ArgumentNullException("genericDataService");
|
||||
|
||||
this.genericDataService = (genericDataService as ProjectDataService);
|
||||
this.actualProject = actualProject;
|
||||
this.renavigator = renavigator;
|
||||
SelectCommand = new SelectProjectCommand(actualProject, this);
|
||||
AddCommand = new AddProjectCommand(genericDataService,actualProject, projectService,renavigator);
|
||||
EditCommand = new EditProjectCommand(genericDataService, actualProject, renavigator,projectService, this);
|
||||
LoadProjecte();
|
||||
}
|
||||
|
||||
public async void LoadProjecte()
|
||||
{
|
||||
var projects = await genericDataService.GetAll();
|
||||
InitCollection(Projekte, projects);
|
||||
}
|
||||
|
||||
private void InitCollection(ObservableCollection<Project> target, IEnumerable<Project> source)
|
||||
{
|
||||
target.Clear();
|
||||
foreach (var i in source)
|
||||
target.Add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user