Bug: Potentieller Speicherverlust + Speichert jetzt letztes Einstellungsfenster
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BS.Shared;
|
||||
using DevExpress.Xpf.Accordion;
|
||||
using DevExpress.Xpf.Scheduling;
|
||||
using DevExpress.XtraScheduler;
|
||||
|
||||
@@ -421,6 +422,8 @@ namespace BeWo.Core.Config
|
||||
public bool ShowPivotGrid { get; set; }
|
||||
|
||||
public string ExpandedAdministrationItems { get; set; }
|
||||
public string SelectedAdministrationItem { get; set; }
|
||||
|
||||
public bool ShowUrlaubsplanung { get; set; }
|
||||
public bool DontShowSpitzabrechnung { get; set; }
|
||||
public bool ShowDienstplanung { get; set; }
|
||||
|
||||
@@ -14,6 +14,7 @@ using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
using DevExpress.Xpf.Accordion;
|
||||
using BeWo.View.Detail.Administration;
|
||||
using System.Linq;
|
||||
|
||||
namespace BeWo.View.Master
|
||||
{
|
||||
@@ -29,7 +30,6 @@ namespace BeWo.View.Master
|
||||
{
|
||||
InitializeComponent();
|
||||
//GenerateNewView(TabitemMandator);
|
||||
Root.SelectedItem = TabitemMandator;
|
||||
|
||||
this.Loaded += AdministrationView_Loaded;
|
||||
|
||||
@@ -136,6 +136,15 @@ namespace BeWo.View.Master
|
||||
// item.IsExpanded = true;
|
||||
//}
|
||||
}
|
||||
|
||||
if (BeWoApp.AppSettings.SelectedAdministrationItem is string selected)
|
||||
{
|
||||
Root.SelectedItem = searchAccordionItem(selected);
|
||||
}
|
||||
else
|
||||
{
|
||||
Root.SelectedItem = TabitemMandator;
|
||||
}
|
||||
}
|
||||
|
||||
private void Tabitem_Selected(object sender, RoutedEventArgs e)
|
||||
@@ -143,10 +152,16 @@ namespace BeWo.View.Master
|
||||
if (!(sender is AccordionItem selectedAccordionItem))
|
||||
return;
|
||||
|
||||
if (_OpenViews.ContainsKey(selectedAccordionItem.Header.ToString()))
|
||||
SetView(_OpenViews[selectedAccordionItem.Header.ToString()]);
|
||||
var header = selectedAccordionItem.Header.ToString();
|
||||
if (_OpenViews.TryGetValue(header, out var view))
|
||||
{
|
||||
if(view is object)
|
||||
SetView(_OpenViews[header]);
|
||||
}
|
||||
else
|
||||
GenerateNewView(selectedAccordionItem);
|
||||
|
||||
BeWoApp.AppSettings.SelectedAdministrationItem = header;
|
||||
}
|
||||
|
||||
public override bool IsDirty => SelectedView != null &&
|
||||
@@ -226,7 +241,7 @@ namespace BeWo.View.Master
|
||||
pView.MaxHeight = ActualHeight - 120;
|
||||
}
|
||||
|
||||
_OpenViews.Add(pTabItem.Header.ToString(), pView);
|
||||
_OpenViews[pTabItem.Header.ToString()] = pView;
|
||||
SetView(pView);
|
||||
}
|
||||
|
||||
@@ -247,6 +262,17 @@ namespace BeWo.View.Master
|
||||
if (accordionItem == null)
|
||||
return;
|
||||
|
||||
|
||||
var header = accordionItem.Header.ToString();
|
||||
if (_OpenViews.TryGetValue(header, out var view))
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
_OpenViews.Add(header, null);
|
||||
}
|
||||
|
||||
switch (accordionItem.Name)
|
||||
{
|
||||
case nameof(TabitemMandator):
|
||||
@@ -458,6 +484,43 @@ namespace BeWo.View.Master
|
||||
}
|
||||
}
|
||||
|
||||
private AccordionItem searchAccordionItem(string header)
|
||||
{
|
||||
foreach (var item in Root.Items)
|
||||
{
|
||||
var rtn = searchAccordionItem(item as AccordionItem, header);
|
||||
|
||||
if (rtn is object)
|
||||
return rtn;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private AccordionItem searchAccordionItem(AccordionItem accordion, string header)
|
||||
{
|
||||
if (accordion is null)
|
||||
return null;
|
||||
|
||||
if (!accordion.Items.Any())
|
||||
{
|
||||
if (header == accordion.Header.ToString())
|
||||
return accordion;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
foreach (var item in accordion.Items)
|
||||
{
|
||||
var rtn = searchAccordionItem(item as AccordionItem, header);
|
||||
|
||||
if (rtn is object)
|
||||
return rtn;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
||||
{
|
||||
//e.Handled = true;
|
||||
|
||||
Reference in New Issue
Block a user