Viewmodel erweitert
This commit is contained in:
@@ -7,6 +7,9 @@
|
|||||||
</ApplicationDefinition>
|
</ApplicationDefinition>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Update="UI\Kunde\UCKundeList.xaml.cs">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Update="UI\Projekt\WindowProjektEdit.xaml.cs">
|
<Compile Update="UI\Projekt\WindowProjektEdit.xaml.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -18,6 +21,9 @@
|
|||||||
<Page Update="MainWindow.xaml">
|
<Page Update="MainWindow.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Update="UI\Kunde\UCKundeList.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
<Page Update="UI\Projekt\WindowProjektEdit.xaml">
|
<Page Update="UI\Projekt\WindowProjektEdit.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -30,10 +30,19 @@ namespace KanSan
|
|||||||
this.Title = ProgrammHashVersion.GIT_HASH;
|
this.Title = ProgrammHashVersion.GIT_HASH;
|
||||||
|
|
||||||
|
|
||||||
UI.UCKundeEdit uCKundeEdit = new UI.UCKundeEdit();
|
/*UI.UCKundeEdit uCKundeEdit = new UI.UCKundeEdit();
|
||||||
ContentController.Content = uCKundeEdit;
|
ContentController.Content = uCKundeEdit;*/
|
||||||
|
|
||||||
|
UI.UCKundeList uCKundeList = new UI.UCKundeList();
|
||||||
|
uCKundeList.KundeAdded += UCKundeList_KundeAdded;
|
||||||
|
ContentController.Content = uCKundeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UCKundeList_KundeAdded(object sender, UI.KundeAddedKlickEventArgs e)
|
||||||
|
{
|
||||||
|
UI.UCKundeEdit uCKundeEdit = new UI.UCKundeEdit(e.kunde);
|
||||||
|
ContentController.Content = uCKundeEdit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,17 +24,17 @@ namespace KanSan.UI
|
|||||||
{
|
{
|
||||||
//private Kunde kunde = null;
|
//private Kunde kunde = null;
|
||||||
//private UnitOfWork unitOfWork = null;
|
//private UnitOfWork unitOfWork = null;
|
||||||
public UCKundeEdit()
|
public UCKundeEdit(Kunde kunde = null)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
|
||||||
this.DataContext = new KundeViewModel();
|
this.DataContext = new KundenEditViewModel(kunde);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Speichern_Click(object sender, RoutedEventArgs e)
|
private void Speichern_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
((KundeViewModel)DataContext).Speichern();
|
((KundenEditViewModel)DataContext).Speichern();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
17
KanSan/UI/Kunde/UCKundeList.xaml
Normal file
17
KanSan/UI/Kunde/UCKundeList.xaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<UserControl x:Class="KanSan.UI.UCKundeList"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:KanSan.UI"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
d:DesignHeight="450" d:DesignWidth="800">
|
||||||
|
<Grid>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="50"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<DataGrid ItemsSource="{Binding Kunden}" />
|
||||||
|
<Button Grid.Row="1" Name="NeueKunde" Content="Neue Kunde anlegen" Click="NeueKunde_Click" />
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
50
KanSan/UI/Kunde/UCKundeList.xaml.cs
Normal file
50
KanSan/UI/Kunde/UCKundeList.xaml.cs
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
using KanSan.Base.Models;
|
||||||
|
using KanSan.ViewModel;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
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 KanSan.UI
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Interaktionslogik für UCKundeList.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class UCKundeList : UserControl
|
||||||
|
{
|
||||||
|
|
||||||
|
public UCKundeList()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.DataContext = new KundenListViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NeueKunde_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
KundeAddedKlickEventArgs args = new KundeAddedKlickEventArgs();
|
||||||
|
args.kunde = (DataContext as KundenListViewModel).NeueKunde();
|
||||||
|
OnKlickedKunde(args);
|
||||||
|
|
||||||
|
}
|
||||||
|
protected virtual void OnKlickedKunde(KundeAddedKlickEventArgs e)
|
||||||
|
{
|
||||||
|
EventHandler<KundeAddedKlickEventArgs> handler = KundeAdded;
|
||||||
|
if (handler != null)
|
||||||
|
handler(this, e);
|
||||||
|
}
|
||||||
|
public event EventHandler<KundeAddedKlickEventArgs> KundeAdded;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class KundeAddedKlickEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public Kunde kunde { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ using System.Text;
|
|||||||
|
|
||||||
namespace KanSan.ViewModel
|
namespace KanSan.ViewModel
|
||||||
{
|
{
|
||||||
class KundeViewModel : PropertyChangedClass, INotifyPropertyChanged
|
class KundenEditViewModel : PropertyChangedClass, INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
||||||
|
|
||||||
@@ -88,9 +88,12 @@ namespace KanSan.ViewModel
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public KundeViewModel()
|
public KundenEditViewModel(Kunde kunde = null)
|
||||||
{
|
{
|
||||||
_kunde = unitOfWork.KundenRepository.Get().First();
|
if (kunde == null)
|
||||||
|
_kunde = unitOfWork.KundenRepository.Get().First();
|
||||||
|
else
|
||||||
|
_kunde = kunde;
|
||||||
|
|
||||||
vorname = _kunde.Vorname;
|
vorname = _kunde.Vorname;
|
||||||
nachname = _kunde.Nachname;
|
nachname = _kunde.Nachname;
|
||||||
44
KanSan/ViewModel/KundenListViewModel.cs
Normal file
44
KanSan/ViewModel/KundenListViewModel.cs
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
using KanSan.Base;
|
||||||
|
using KanSan.Base.Interfaces;
|
||||||
|
using KanSan.Base.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace KanSan.ViewModel
|
||||||
|
{
|
||||||
|
class KundenListViewModel
|
||||||
|
{
|
||||||
|
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
|
||||||
|
private List<Kunde> kunden;
|
||||||
|
|
||||||
|
public List<Kunde> Kunden
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return kunden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public KundenListViewModel()
|
||||||
|
{
|
||||||
|
kunden = unitOfWork.KundenRepository.Get().ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Kunde NeueKunde()
|
||||||
|
{
|
||||||
|
Kunde result = new Kunde();
|
||||||
|
result.GuidNr = Guid.NewGuid();
|
||||||
|
unitOfWork.KundenRepository.Insert(result);
|
||||||
|
unitOfWork.Commit();
|
||||||
|
|
||||||
|
IEnumerable<Kunde> kunden = unitOfWork.KundenRepository.Get(d => d.GuidNr.Equals(result.GuidNr));
|
||||||
|
if (kunden.Count() < 1)
|
||||||
|
throw new Exception("Kunde konnte nicht gefunden werden");
|
||||||
|
|
||||||
|
return kunden.First();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user