This commit is contained in:
Husky
2020-07-15 17:18:52 +02:00
parent 3e9a353fc0
commit 7911a44f2f
23 changed files with 290 additions and 127 deletions

View File

@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
xmlns:local="clr-namespace:KanSan"
StartupUri="MainWindow.xaml">
>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>

View File

@@ -1,4 +1,5 @@
using KanSan.ViewModel;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -22,6 +23,8 @@ namespace KanSan
}
public static IServiceProvider ServiceProvider { get; private set; }
protected override void OnStartup(StartupEventArgs e)
{
FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
@@ -33,6 +36,23 @@ namespace KanSan
{
DefaultValue = FindResource(typeof(UserControl))
});
ServiceProvider = CreateServiceProvider();
Window window = ServiceProvider.GetRequiredService<MainWindow>();
window.Show();
base.OnStartup(e);
}
private IServiceProvider CreateServiceProvider()
{
IServiceCollection services = new ServiceCollection();
services.AddSingleton<SewerMainWindowViewModel>();
services.AddScoped<MainWindowViewModel>();
services.AddScoped<MainWindow>(s => new MainWindow(s.GetRequiredService<MainWindowViewModel>()));
return services.BuildServiceProvider();
}
}

View File

@@ -0,0 +1,20 @@
using KanSan.Base.Interfaces;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Windows;
using System.Windows.Input;
namespace KanSan
{
class DialogWindowService: IDialogWindowService
{
public void showWindow(object viewModel)
{
Window win = new Window();
win.Content = viewModel;
win.Show();
}
}
}

View File

@@ -36,52 +36,19 @@ namespace KanSan
UI.UCLeistungsverzeichnisPositionenBaustelle UCLeistungsverzeichnisPositionenBaustelle;
UI.UCLeistungsverzeichnisPosList UCLeistungsverzeichnisPosList;
public MainWindow()
public MainWindow(object dataContext)
{
InitializeComponent();
this.DataContext = new MainWindowViewModel();
(this.DataContext as MainWindowViewModel).GenerateExcelFile();
DataContext = dataContext;
//(this.DataContext as MainWindowViewModel).GenerateExcelFile();
#if DEBUG
System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Critical;
#endif
}
private void UCProjektList_ProjektAdded(object sender, UI.SelectProjektEventArgs e)
{
if (e.projekt == null) return;
UI.UCProjektEdit uCProjektEdit = new UI.UCProjektEdit(e.projekt);
ContentController.Content = uCProjektEdit;
}
private void UCProjektList_ProjektSelected(object sender, UI.SelectProjektEventArgs e)
{
(DataContext as MainWindowViewModel).SelectedProjekt = e.projekt;
}
private void UCKundeList_KundeSelect(object sender, UI.KundeAddedKlickEventArgs e)
{
(DataContext as MainWindowViewModel).SelectedKunde = e.kunde;
}
private void UCKundeList_KundeAdded(object sender, UI.KundeAddedKlickEventArgs e)
{
UCKundeEdit = new UI.UCKundeEdit(e.kunde);
UCKundeEdit.SpeichernClicked += Edit_SpeichernClicked;
ContentController.Content = UCKundeEdit;
}
private void UCProjektList_ProjektEdited(object sender, UI.SelectProjektEventArgs e)
{
if (e.projekt == null) return;
UI.UCProjektEdit uCProjektEdit = new UI.UCProjektEdit(e.projekt);
uCProjektEdit.SpeichernClicked += Edit_SpeichernClicked;
ContentController.Content = uCProjektEdit;
}
private void Edit_SpeichernClicked(object sender, EventArgs e)
{
@@ -89,42 +56,6 @@ namespace KanSan
}
private void UCBaustelleList_BaustelleSelected(object sender, UI.SelectBaustelleEventArgs e)
{
(DataContext as MainWindowViewModel).SelectedBaustelle = e.baustelle;
}
private void UCBaustelleList_BaustelleEdited(object sender, UI.SelectBaustelleEventArgs e)
{
if (e.baustelle == null) return;
UI.UCBaustelleEdit uCBaustelleEdit = new UI.UCBaustelleEdit(e.baustelle);
uCBaustelleEdit.SpeichernClicked += Edit_SpeichernClicked;
ContentController.Content = uCBaustelleEdit;
}
private void UCBaustelleList_BaustelleAdded(object sender, UI.SelectBaustelleEventArgs e)
{
if (e.baustelle == null) return;
UI.UCBaustelleEdit uBaustelleEdit = new UI.UCBaustelleEdit(e.baustelle);
uBaustelleEdit.SpeichernClicked += Edit_SpeichernClicked;
ContentController.Content = uBaustelleEdit;
}
private void UCObjekteList_ObjektSelected(object sender, UI.ObjektSelectEventArgs e)
{
if (e.Objekt == null) return;
(DataContext as MainWindowViewModel).SelectedObjekt = e.Objekt;
rbObjekte.IsChecked = false;
uCSewerMainMenu = new UI.UCSewerMainMenu(e.Objekt);
ContentController.Content = uCSewerMainMenu;
}
private void rbLeistungsverzeichnis_Checked(object sender, RoutedEventArgs e)
{

View File

@@ -28,7 +28,7 @@
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Content="Speichern" Name="Speichern" Click="Speichern_Click"/>
<Button Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Content="Speichern" Name="Speichern" />
<StackPanel Grid.Column="1">
<CheckBox Content="Rohrleitung in Betrieb" IsChecked="{Binding Path=(iself:IObjekteEditViewModel.RohrleitungInBetrieb)}" Style="{StaticResource checkBoxCircle}"/>
<CheckBox Content="Wasserhaltung durchgeführt" IsChecked="{Binding Path=(iself:IObjekteEditViewModel.WasserHaltungDurchgefuehrt)}" Style="{StaticResource checkBoxCircle}" />

View File

@@ -20,15 +20,10 @@ namespace KanSan.UI
/// </summary>
public partial class UCObjektEdit : UserControl
{
public UCObjektEdit(Sewer objekt)
public UCObjektEdit()
{
InitializeComponent();
this.DataContext = new ObjekteEditViewModel(objekt);
}
private void Speichern_Click(object sender, RoutedEventArgs e)
{
(DataContext as ObjekteEditViewModel).Speichern();
}
}
}

View File

@@ -19,14 +19,8 @@
<RowDefinition Height="50" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<TreeView Name="trvItems" ItemsSource="{Binding KanalObjekte}" >
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="local:MouseLeftButtonUp.Command" Value="{Binding DataContext.ObjektSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeView}}}" />
<Setter Property="local:MouseLeftButtonUp.CommandParamter"
Value="{Binding ElementName=trvItems, Path=SelectedItem}"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView Name="trvItems" ItemsSource="{Binding KanalObjekte}" MouseDoubleClick="trvItems_MouseDoubleClick" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type self:ObjekteTransfer}" ItemsSource="{Binding Objekte}">
<StackPanel Orientation="Horizontal">
@@ -51,7 +45,7 @@
</DataTemplate>
</TreeView.Resources>
</TreeView>
<Button Grid.Row="1" x:Name="ProjektSelect" Content="Objekt Auswählen" />
<Button Grid.Row="1" x:Name="ProjektSelect" Content="Objekt Auswählen" Command="{Binding ObjektSelected}" />
<Button Grid.Row="2" Name="ProjektEdit" Content="Objekt Editieren" />
<Button Grid.Row="3" Name="ObjektNew" Content="Neue Objekt Hinzufügen" Click="ObjektNew_Click" />

View File

@@ -50,7 +50,7 @@ namespace KanSan.UI
control.MouseLeftButtonUp += OnMouseLeftButtonUp;
else if ((e.NewValue == null) && (e.OldValue != null))
control.MouseLeftButtonUp -= OnMouseLeftButtonUp;
}
private static void OnMouseLeftButtonUp(object sender, RoutedEventArgs e)
{
@@ -67,7 +67,7 @@ namespace KanSan.UI
/// </summary>
public partial class UCObjekteList : UserControl
{
public event EventHandler<ObjektSelectEventArgs> ObjektSelected;
Baustelle baustelle;
public UCObjekteList()
{
@@ -88,24 +88,17 @@ namespace KanSan.UI
private void trvItems_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
TreeView treeView = (TreeView)sender;
if (treeView == null) return;
if (!(treeView.SelectedItem is Sewer)) return;
Sewer sewer = (Sewer)treeView.SelectedItem;
if (sewer == null) return;
OnObjektSelectKlick(new ObjektSelectEventArgs() { Objekt = sewer });
SewerMainWindow sewerMainWindow = new SewerMainWindow();
sewerMainWindow.DataContext = new SewerMainWindowViewModel(sewer);
sewerMainWindow.ShowDialog();
}
protected virtual void OnObjektSelectKlick(ObjektSelectEventArgs e)
{
EventHandler<ObjektSelectEventArgs> handler = ObjektSelected;
if (handler != null)
handler(this, e);
}
}
public class ObjektSelectEventArgs : EventArgs
{
public Sewer Objekt { get; set; }
}
}

View File

@@ -52,7 +52,7 @@
</DataGrid.Columns>
</DataGrid>
<Button Grid.Row="1" Name="NewSchaden" Click="NewSchaden_Click" Content="Neue Schäden Hinzufügen" />
<Button Grid.Row="1" Name="NewSchaden" Command="{Binding neueSchadenHinzufügen}" Content="Neue Schäden Hinzufügen" />
<Button Grid.Row="2" Name="GenerateExcel" Content="Schadensbericht erstellen" Click="GenerateExcel_Click" />
</Grid>
</UserControl>

View File

@@ -29,6 +29,11 @@ namespace KanSan.UI
this.DataContext = new SchaedenListViewModel(actualSelectedSewer);
}
public UCSchaedenList()
{
InitializeComponent();
}
protected virtual void OnClickSchaedenSelect(SelectSchaedenEventArgs e)
{
EventHandler<SelectSchaedenEventArgs> handler = SchaedenSelected;

View File

@@ -1,12 +1,42 @@
<Window x:Class="KanSan.UI.SewerMainWindow"
<syncfusion:ChromelessWindow x:Class="KanSan.UI.SewerMainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:syncfusion="clr-namespace:Syncfusion.Windows.Shared;assembly=Syncfusion.Shared.WPF"
xmlns:local="clr-namespace:KanSan.UI"
mc:Ignorable="d"
Title="SewerMainWindow" Height="450" Width="800">
mc:Ignorable="d" TitleBarBackground="BlueViolet"
Title="SewerMainWindow" Height="450" Width="800" WindowStartupLocation="CenterScreen" WindowState="Maximized">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="./../my_controls.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="11*" />
<RowDefinition Height="64*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<TextBlock Text="{Binding ObjektBezeichnung}" />
<!--<TextBlock Text="{Binding Path=(self:SewerMainMenuViewModel.ObjektBezeichnung)}" />
<TextBlock Text="{Binding Path=(self:SewerMainMenuViewModel.SchadenEntfernung)}" />-->
<TextBlock Text="" />
</StackPanel>
<!--<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=(self:SewerMainMenuViewModel.ObjektBezeichnung)}" />-->
<StackPanel Grid.Column="0" Grid.Row="1" Name="MenuItems">
<RadioButton Command="{Binding StammdatenSelect}" Style="{StaticResource ToggelButtonList}" Content="Stammdaten" />
<RadioButton Command="{Binding SchädenübersichtSelect}" Name="rbSchaeden" Style="{StaticResource ToggelButtonList}" Content="Schäden" />
</StackPanel>
<ContentControl Grid.Column="1" Grid.Row="1" Content="{Binding AktualView}" Name="ObjektContentcontroller" />
</Grid>
</Window>
</syncfusion:ChromelessWindow>

View File

@@ -1,5 +1,6 @@
using KanSan.Base.Models;
using KanSan.ViewModel;
using Syncfusion.Windows.Shared;
using System;
using System.Collections.Generic;
using System.Text;
@@ -17,7 +18,7 @@ namespace KanSan.UI
/// <summary>
/// Interaktionslogik für SewerMainWindow.xaml
/// </summary>
public partial class SewerMainWindow : Window
public partial class SewerMainWindow : ChromelessWindow
{
public SewerMainWindow()
{

View File

@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:self="clr-namespace:KanSan.ViewModel;assembly=KanSan.ViewModel"
xmlns:syncfusion="clr-namespace:Syncfusion.Windows.Shared;assembly=Syncfusion.Shared.WPF"
xmlns:local="clr-namespace:KanSan.UI"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">

View File

@@ -25,8 +25,8 @@ namespace KanSan.UI
{
InitializeComponent();
this.DataContext = new SewerMainWindowViewModel(objekt);
UI.UCObjektEdit uCObjektEdit = new UCObjektEdit(objekt);
ObjektContentcontroller.Content = uCObjektEdit;
//UI.UCObjektEdit uCObjektEdit = new UCObjektEdit(objekt);
//ObjektContentcontroller.Content = uCObjektEdit;
rbStammdaten.IsChecked = true;
Style style = this.FindResource("ToggelButtonList") as Style;
@@ -42,6 +42,7 @@ namespace KanSan.UI
private void rbSewerMenuItem_Checked(object sender, RoutedEventArgs e)
{
/*
RadioButton btn = (RadioButton)sender;
if (btn == null) return;
switch(btn.Name)
@@ -58,7 +59,7 @@ namespace KanSan.UI
break;
}
*/
}
Schaeden aktuellSchadenSelected = null;
private void UCSchaedenList_SanierungsmaßnahmenSelected(object sender, SelectSchaedenEventArgs e)

View File

@@ -18,6 +18,13 @@
<DataTemplate DataType="{x:Type vm:ObjekteListViewModel}">
<l:UCObjekteList />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ObjekteEditViewModel}">
<l:UCObjektEdit />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:SchaedenListViewModel}">
<l:UCSchaedenList />
</DataTemplate>
<DataTemplate x:Key="SelectNewTätigkeitenLVPosition">
<Border BorderThickness="2" BorderBrush="Red">