diff --git a/ENI-2/ENI2/ENI2/Controls/ClosableTabItem.cs b/ENI-2/ENI2/ENI2/Controls/ClosableTabItem.cs index 59682f0c..cc47d729 100644 --- a/ENI-2/ENI2/ENI2/Controls/ClosableTabItem.cs +++ b/ENI-2/ENI2/ENI2/Controls/ClosableTabItem.cs @@ -48,6 +48,9 @@ namespace ENI2.Controls } */ + public event EventHandler TabClosing; + + public void SetHeaderText(string headerText) { // Container for header controls @@ -80,6 +83,8 @@ namespace ENI2.Controls { var tabControl = Parent as ItemsControl; tabControl.Items.Remove(this); + if (TabClosing != null) + this.TabClosing(this, new EventArgs()); }; dockPanel.Children.Add(closeButton); diff --git a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs index 99c94d4d..6d39ef86 100644 --- a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs +++ b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs @@ -32,11 +32,14 @@ namespace ENI2.Controls { var okButton = (Button)Template.FindName("buttonOK", this); var cancelButton = (Button)Template.FindName("buttonCancel", this); - okButton.Click += (s, e) => { DialogResult = true; OKClicked?.Invoke(); }; - cancelButton.Click += (s, e) => { DialogResult = false; CancelClicked?.Invoke(); }; + okButton.Click += (s, e) => { if (IsModal) DialogResult = true; else this.Close(); OKClicked?.Invoke(); }; + cancelButton.Click += (s, e) => { if (IsModal) DialogResult = false; else this.Close(); CancelClicked?.Invoke(); }; }; + this.IsModal = true; // default } + public bool IsModal { get; set; } + private void Window_Closing(object sender, CancelEventArgs e) { if (this.shouldCancel) e.Cancel = true; diff --git a/ENI-2/ENI2/ENI2/DetailBaseControl.cs b/ENI-2/ENI2/ENI2/DetailBaseControl.cs index 0b59f80e..0ef1ba0e 100644 --- a/ENI-2/ENI2/ENI2/DetailBaseControl.cs +++ b/ENI-2/ENI2/ENI2/DetailBaseControl.cs @@ -26,7 +26,6 @@ namespace ENI2 AMBIGUOUS } - #endregion #region events @@ -37,6 +36,11 @@ namespace ENI2 /// public event Action JumpToListElementRequest; + /// + /// Mit diesem Event kann ein Listen-Element einen Reload der gesamten Anmeldung auslösen (ob das so eine tolle Idee ist.) + /// + public event Action RequestReload; + #endregion #region Properties @@ -47,18 +51,26 @@ namespace ENI2 #endregion - #region protected methods + #region public methods public virtual void Initialize() { - - } + #endregion + + #region protected methods + protected virtual void OnJumpToListElementRequest(int index) { this.JumpToListElementRequest?.Invoke(index); - } + } + + protected virtual void OnRequestReload() + { + this.RequestReload?.Invoke(); + } + protected void SetLocodeStateImage(Image stateImage, LocodeState state) { diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml b/ENI-2/ENI2/ENI2/DetailRootControl.xaml index 88c76e54..9b783284 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml @@ -3,6 +3,7 @@ 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:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:local="clr-namespace:ENI2" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> @@ -16,9 +17,9 @@ -