diff --git a/Source/NETworkManager.Controls/MultiSelectDataGrid.cs b/Source/NETworkManager.Controls/MultiSelectDataGrid.cs
index 40a89b1e8f..3aeaeaa4bb 100644
--- a/Source/NETworkManager.Controls/MultiSelectDataGrid.cs
+++ b/Source/NETworkManager.Controls/MultiSelectDataGrid.cs
@@ -1,4 +1,5 @@
using System.Collections;
+using System.Collections.Specialized;
using System.Windows;
using System.Windows.Controls;
@@ -6,9 +7,11 @@ namespace NETworkManager.Controls;
public class MultiSelectDataGrid : DataGrid
{
+ private bool _isUpdatingSelection;
+
public static readonly DependencyProperty SelectedItemsListProperty =
DependencyProperty.Register("SelectedItemsList", typeof(IList), typeof(MultiSelectDataGrid),
- new PropertyMetadata(null));
+ new PropertyMetadata(null, OnSelectedItemsListChanged));
public MultiSelectDataGrid()
{
@@ -21,8 +24,81 @@ public IList SelectedItemsList
set => SetValue(SelectedItemsListProperty, value);
}
+ private static void OnSelectedItemsListChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if (d is not MultiSelectDataGrid dataGrid)
+ return;
+
+ dataGrid.UnsubscribeFromCollectionChanged(e.OldValue as IList);
+ dataGrid.SubscribeToCollectionChanged(e.NewValue as IList);
+ dataGrid.UpdateSelectedItems();
+ }
+
+ private void SubscribeToCollectionChanged(IList list)
+ {
+ if (list is INotifyCollectionChanged observableCollection)
+ {
+ observableCollection.CollectionChanged += OnSelectedItemsListCollectionChanged;
+ }
+ }
+
+ private void UnsubscribeFromCollectionChanged(IList list)
+ {
+ if (list is INotifyCollectionChanged observableCollection)
+ {
+ observableCollection.CollectionChanged -= OnSelectedItemsListCollectionChanged;
+ }
+ }
+
+ private void OnSelectedItemsListCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
+ {
+ UpdateSelectedItems();
+ }
+
+ private void UpdateSelectedItems()
+ {
+ if (_isUpdatingSelection)
+ return;
+
+ _isUpdatingSelection = true;
+
+ try
+ {
+ SelectedItems.Clear();
+
+ if (SelectedItemsList != null)
+ {
+ foreach (var item in SelectedItemsList)
+ {
+ SelectedItems.Add(item);
+ }
+ }
+ }
+ finally
+ {
+ _isUpdatingSelection = false;
+ }
+ }
+
private void DataGridMultiItemSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
- SelectedItemsList = SelectedItems;
+ if (_isUpdatingSelection || SelectedItemsList == null)
+ return;
+
+ _isUpdatingSelection = true;
+
+ try
+ {
+ SelectedItemsList.Clear();
+
+ foreach (var item in SelectedItems)
+ {
+ SelectedItemsList.Add(item);
+ }
+ }
+ finally
+ {
+ _isUpdatingSelection = false;
+ }
}
}
\ No newline at end of file
diff --git a/Source/NETworkManager.Settings/AppearanceManager.cs b/Source/NETworkManager.Settings/AppearanceManager.cs
index 5887c0c70e..c8c8741b7e 100644
--- a/Source/NETworkManager.Settings/AppearanceManager.cs
+++ b/Source/NETworkManager.Settings/AppearanceManager.cs
@@ -1,5 +1,4 @@
using ControlzEx.Theming;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.Theming;
using NETworkManager.Models.Appearance;
using System;
@@ -42,11 +41,6 @@ public static class AppearanceManager
///
private const string ThemeFolderName = "Themes";
- ///
- /// Contains the default settings for a new
- ///
- public static readonly MetroDialogSettings MetroDialog = new();
-
///
/// List who contains all MahApps.Metro themes.
///
@@ -83,15 +77,6 @@ static AppearanceManager()
ThemeManager.Current.ThemeChanged += Current_ThemeChanged;
LoadCustomThemes();
-
- MetroDialog.CustomResourceDictionary = new ResourceDictionary
- {
- Source = new Uri("NETworkManager;component/Resources/Styles/MetroDialogStyles.xaml",
- UriKind.RelativeOrAbsolute)
- };
-
- MetroDialog.DialogButtonFontSize = 14;
- MetroDialog.DialogMessageFontSize = 14;
}
#endregion
diff --git a/Source/NETworkManager.Utilities/VisualTreeHelper.cs b/Source/NETworkManager.Utilities/VisualTreeHelper.cs
index 8592fa5756..86d560131d 100644
--- a/Source/NETworkManager.Utilities/VisualTreeHelper.cs
+++ b/Source/NETworkManager.Utilities/VisualTreeHelper.cs
@@ -3,8 +3,25 @@
namespace NETworkManager.Utilities;
+///
+/// Provides helper methods for traversing and querying the visual tree of WPF elements.
+///
+/// The VisualTreeHelper class contains static methods that facilitate searching for and enumerating
+/// visual child elements within a WPF application's visual tree. These methods are useful for scenarios where you need
+/// to locate elements of a specific type or perform operations on all descendants of a visual element.
public class VisualTreeHelper
{
+ ///
+ /// Enumerates all descendant visual children of a specified type from the visual tree starting at the given
+ /// dependency object.
+ ///
+ /// This method performs a recursive depth-first traversal of the visual tree. It yields each
+ /// descendant of the specified type, including those nested at any depth. The enumeration is deferred and elements
+ /// are returned as they are discovered.
+ /// The type of visual child to search for. Must derive from DependencyObject.
+ /// The root of the visual tree to search. Cannot be null.
+ /// An enumerable collection of all descendant elements of type T found in the visual tree. The collection is empty
+ /// if no matching elements are found.
public static IEnumerable FindVisualChildren(DependencyObject depObj) where T : DependencyObject
{
if (depObj == null)
@@ -19,4 +36,4 @@ public static IEnumerable FindVisualChildren(DependencyObject depObj) wher
foreach (var childOfChild in FindVisualChildren(child)) yield return childOfChild;
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/NETworkManager/App.xaml b/Source/NETworkManager/App.xaml
index 059b0654ca..36c4e5454a 100644
--- a/Source/NETworkManager/App.xaml
+++ b/Source/NETworkManager/App.xaml
@@ -35,7 +35,6 @@
-
diff --git a/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml b/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml
index 0f2a6e2b68..a60f681974 100644
--- a/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml
+++ b/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml
@@ -10,12 +10,10 @@
xmlns:controls="clr-namespace:NETworkManager.Controls"
xmlns:application="clr-namespace:NETworkManager.Models;assembly=NETworkManager.Models"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
- xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
+ xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
mc:Ignorable="d"
Style="{DynamicResource DefaultWindow}" MinWidth="800" Width="1024" Height="768" MinHeight="600"
- TitleAlignment="Left" Activated="MetroWindow_Activated"
- dialogs:DialogParticipation.Register="{Binding}"
+ TitleAlignment="Left" Activated="MetroWindow_Activated"
Closing="DragablzTabHostWindow_OnClosing"
d:DataContext="{d:DesignInstance controls:DragablzTabHostWindow}">
diff --git a/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs b/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs
index a49b4b3da9..2bbcd42044 100644
--- a/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs
+++ b/Source/NETworkManager/Controls/DragablzTabHostWindow.xaml.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
@@ -224,13 +223,13 @@ private async void RemoteDesktop_SendCtrlAltDelAction(object view)
}
catch (Exception ex)
{
- ConfigurationManager.OnDialogOpen();
+ //ConfigurationManager.OnDialogOpen();
- await this.ShowMessageAsync(Strings.Error,
- string.Format("{0}\n\nMessage:\n{1}",
- Strings.CouldNotSendKeystroke, ex.Message));
+ // Use built-in message box because we have visual issues in the dragablz window
+ System.Windows.MessageBox.Show(string.Format("{0}\n\nMessage:\n{1}",
+ Strings.CouldNotSendKeystroke, ex.Message), Strings.Error, MessageBoxButton.OK, MessageBoxImage.Error);
- ConfigurationManager.OnDialogClose();
+ //ConfigurationManager.OnDialogClose();
}
}
diff --git a/Source/NETworkManager/Controls/PowerShellControl.xaml b/Source/NETworkManager/Controls/PowerShellControl.xaml
index b9fc10e9c1..051baa2312 100644
--- a/Source/NETworkManager/Controls/PowerShellControl.xaml
+++ b/Source/NETworkManager/Controls/PowerShellControl.xaml
@@ -8,8 +8,7 @@
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:local="clr-namespace:NETworkManager.Controls"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- mah:DialogParticipation.Register="{Binding}"
+ xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
mc:Ignorable="d" Loaded="UserControl_Loaded"
d:DataContext="{d:DesignInstance local:PowerShellControl}">
diff --git a/Source/NETworkManager/Controls/PowerShellControl.xaml.cs b/Source/NETworkManager/Controls/PowerShellControl.xaml.cs
index d8dbd968b0..420654fc22 100644
--- a/Source/NETworkManager/Controls/PowerShellControl.xaml.cs
+++ b/Source/NETworkManager/Controls/PowerShellControl.xaml.cs
@@ -5,7 +5,6 @@
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.PowerShell;
using NETworkManager.Settings;
@@ -29,8 +28,6 @@ private void WindowGrid_SizeChanged(object sender, SizeChangedEventArgs e)
private bool _initialized;
private bool _closed;
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private readonly PowerShellSessionInfo _sessionInfo;
@@ -76,8 +73,6 @@ public PowerShellControl(Guid tabId, PowerShellSessionInfo sessionInfo)
InitializeComponent();
DataContext = this;
- _dialogCoordinator = DialogCoordinator.Instance;
-
ConfigurationManager.Current.PowerShellTabCount++;
_tabId = tabId;
@@ -196,17 +191,8 @@ private async Task Connect()
catch (Exception ex)
{
if (!_closed)
- {
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- ConfigurationManager.OnDialogOpen();
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- ex.Message, MessageDialogStyle.Affirmative, settings);
-
- ConfigurationManager.OnDialogClose();
- }
+ // Use built-in message box because we have visual issues in the dragablz window
+ MessageBox.Show(ex.Message, Strings.Error, MessageBoxButton.OK, MessageBoxImage.Error);
}
IsConnecting = false;
diff --git a/Source/NETworkManager/Controls/PuTTYControl.xaml b/Source/NETworkManager/Controls/PuTTYControl.xaml
index 227a61868f..d431ec8685 100644
--- a/Source/NETworkManager/Controls/PuTTYControl.xaml
+++ b/Source/NETworkManager/Controls/PuTTYControl.xaml
@@ -9,7 +9,6 @@
xmlns:local="clr-namespace:NETworkManager.Controls"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- mah:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" Loaded="UserControl_Loaded"
d:DataContext="{d:DesignInstance local:PuTTYControl}">
diff --git a/Source/NETworkManager/Controls/PuTTYControl.xaml.cs b/Source/NETworkManager/Controls/PuTTYControl.xaml.cs
index fdc8ef9f3a..8d7c623af2 100644
--- a/Source/NETworkManager/Controls/PuTTYControl.xaml.cs
+++ b/Source/NETworkManager/Controls/PuTTYControl.xaml.cs
@@ -5,7 +5,6 @@
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.PuTTY;
using NETworkManager.Settings;
@@ -30,8 +29,6 @@ private void WindowGrid_SizeChanged(object sender, SizeChangedEventArgs e)
private bool _initialized;
private bool _closed;
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private readonly PuTTYSessionInfo _sessionInfo;
@@ -77,8 +74,6 @@ public PuTTYControl(Guid tabId, PuTTYSessionInfo sessionInfo)
InitializeComponent();
DataContext = this;
- _dialogCoordinator = DialogCoordinator.Instance;
-
ConfigurationManager.Current.PuTTYTabCount++;
_tabId = tabId;
@@ -213,17 +208,8 @@ private async Task Connect()
catch (Exception ex)
{
if (!_closed)
- {
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- ConfigurationManager.OnDialogOpen();
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- ex.Message, MessageDialogStyle.Affirmative, settings);
-
- ConfigurationManager.OnDialogClose();
- }
+ // Use built-in message box because we have visual issues in the dragablz window
+ MessageBox.Show(ex.Message, Strings.Error, MessageBoxButton.OK, MessageBoxImage.Error);
}
IsConnecting = false;
diff --git a/Source/NETworkManager/Controls/TigerVNCControl.xaml b/Source/NETworkManager/Controls/TigerVNCControl.xaml
index a20f0c5a3e..eaa52952ef 100644
--- a/Source/NETworkManager/Controls/TigerVNCControl.xaml
+++ b/Source/NETworkManager/Controls/TigerVNCControl.xaml
@@ -9,7 +9,6 @@
xmlns:local="clr-namespace:NETworkManager.Controls"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- mah:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" Loaded="UserControl_Loaded"
d:DataContext="{d:DesignInstance local:TigerVNCControl}">
diff --git a/Source/NETworkManager/Controls/TigerVNCControl.xaml.cs b/Source/NETworkManager/Controls/TigerVNCControl.xaml.cs
index 55f8fb1e04..b4f6f4bf89 100644
--- a/Source/NETworkManager/Controls/TigerVNCControl.xaml.cs
+++ b/Source/NETworkManager/Controls/TigerVNCControl.xaml.cs
@@ -5,7 +5,6 @@
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.TigerVNC;
using NETworkManager.Settings;
@@ -29,8 +28,6 @@ private void TigerVNCGrid_SizeChanged(object sender, SizeChangedEventArgs e)
private bool _initialized;
private bool _closed;
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private readonly TigerVNCSessionInfo _sessionInfo;
@@ -76,8 +73,6 @@ public TigerVNCControl(Guid tabId, TigerVNCSessionInfo sessionInfo)
InitializeComponent();
DataContext = this;
- _dialogCoordinator = DialogCoordinator.Instance;
-
ConfigurationManager.Current.TigerVNCTabCount++;
_tabId = tabId;
@@ -209,16 +204,8 @@ private async Task Connect()
catch (Exception ex)
{
if (!_closed)
- {
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
- ConfigurationManager.OnDialogOpen();
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- ex.Message, MessageDialogStyle.Affirmative, settings);
-
- ConfigurationManager.OnDialogClose();
- }
+ // Use built-in message box because we have visual issues in the dragablz window
+ MessageBox.Show(ex.Message, Strings.Error, MessageBoxButton.OK, MessageBoxImage.Error);
}
IsConnecting = false;
diff --git a/Source/NETworkManager/Controls/WebConsoleControl.xaml b/Source/NETworkManager/Controls/WebConsoleControl.xaml
index 9ac5538813..92b8056c28 100644
--- a/Source/NETworkManager/Controls/WebConsoleControl.xaml
+++ b/Source/NETworkManager/Controls/WebConsoleControl.xaml
@@ -10,7 +10,6 @@
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:webview="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
- mah:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" Loaded="UserControl_Loaded"
d:DataContext="{d:DesignInstance local:WebConsoleControl}">
diff --git a/Source/NETworkManager/DialogHelper.cs b/Source/NETworkManager/DialogHelper.cs
index 818dd8ab76..a5882b633a 100644
--- a/Source/NETworkManager/DialogHelper.cs
+++ b/Source/NETworkManager/DialogHelper.cs
@@ -24,19 +24,19 @@ public static class DialogHelper
/// The title text displayed in the message dialog window. Cannot be null.
/// The main message content shown in the dialog. Cannot be null.
/// The icon to display in the dialog, indicating the message type. Defaults to Info if not specified.
- /// The text to display on the OK button. If null, a default value is used.
+ /// The text to display on the confirm button. If null, a default value is used.
/// A task that completes when the user closes the message dialog.
- public static Task ShowOKMessageAsync(Window parentWindow, string title, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string buttonOKText = null)
+ public static Task ShowMessageAsync(Window parentWindow, string title, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string confirmButtonText = null)
{
- buttonOKText ??= Strings.OK;
+ confirmButtonText ??= Strings.OK;
- var childWindow = new OKMessageChildWindow();
+ var childWindow = new MessageChildWindow();
- var childWindowViewModel = new OKMessageViewModel(_ =>
+ var childWindowViewModel = new MessageViewModel(_ =>
{
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;
- }, message, icon, buttonOKText);
+ }, message, icon, confirmButtonText);
childWindow.Title = title;
@@ -58,20 +58,20 @@ public static Task ShowOKMessageAsync(Window parentWindow, string title, string
/// The title text displayed in the dialog window.
/// The message content shown to the user in the dialog.
/// The icon displayed in the dialog to indicate the message type. Defaults to Info.
- /// The text label for the OK button. If null, a default value is used.
- /// The text label for the Cancel button. If null, a default value is used.
+ /// The text label for the confirm button. If null, a default value is used.
+ /// The text label for the cancel button. If null, a default value is used.
/// A task that represents the asynchronous operation. The task result is if the user
/// clicks OK; otherwise, .
- public static async Task ShowOKCancelMessageAsync(Window parentWindow, string title, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string buttonOKText = null, string buttonCancelText = null)
+ public static async Task ShowConfirmationMessageAsync(Window parentWindow, string title, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string confirmButtonText = null, string cancelButtonText = null)
{
- buttonOKText ??= Strings.OK;
- buttonCancelText ??= Strings.Cancel;
+ confirmButtonText ??= Strings.OK;
+ cancelButtonText ??= Strings.Cancel;
var result = false;
- var childWindow = new OKCancelMessageChildWindow();
+ var childWindow = new MessageConfirmationChildWindow();
- var childWindowViewModel = new OKCancelMessageViewModel(_ =>
+ var childWindowViewModel = new MessageConfirmationViewModel(_ =>
{
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;
@@ -83,7 +83,7 @@ public static async Task ShowOKCancelMessageAsync(Window parentWindow, str
childWindow.IsOpen = false;
ConfigurationManager.Current.IsChildWindowOpen = false;
},
- message, icon, buttonOKText, buttonCancelText);
+ message, icon, confirmButtonText, cancelButtonText);
childWindow.Title = title;
childWindow.DataContext = childWindowViewModel;
diff --git a/Source/NETworkManager/MainWindow.xaml b/Source/NETworkManager/MainWindow.xaml
index bffce2d0e2..e0badb75ef 100644
--- a/Source/NETworkManager/MainWindow.xaml
+++ b/Source/NETworkManager/MainWindow.xaml
@@ -10,14 +10,12 @@
xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
xmlns:asf="clr-namespace:AirspaceFixer;assembly=AirspaceFixer"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
- xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
+ xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
xmlns:resources="clr-namespace:NETworkManager.Properties"
xmlns:networkManager="clr-namespace:NETworkManager"
xmlns:models="clr-namespace:NETworkManager.Models;assembly=NETworkManager.Models"
mc:Ignorable="d"
- Style="{DynamicResource ResourceKey=DefaultWindow}"
- dialogs:DialogParticipation.Register="{Binding }"
+ Style="{DynamicResource ResourceKey=DefaultWindow}"
MinWidth="800" MinHeight="600"
Width="1024" Height="768"
SaveWindowPosition="True" TitleAlignment="Left"
diff --git a/Source/NETworkManager/MainWindow.xaml.cs b/Source/NETworkManager/MainWindow.xaml.cs
index 3a122be998..75f86b6cc8 100644
--- a/Source/NETworkManager/MainWindow.xaml.cs
+++ b/Source/NETworkManager/MainWindow.xaml.cs
@@ -1,6 +1,5 @@
using Dragablz;
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Documentation;
@@ -34,6 +33,7 @@
using System.Windows.Interop;
using System.Windows.Markup;
using System.Windows.Threading;
+using static System.Runtime.InteropServices.JavaScript.JSType;
using Application = System.Windows.Application;
using ContextMenu = System.Windows.Controls.ContextMenu;
using MouseEventArgs = System.Windows.Forms.MouseEventArgs;
@@ -460,12 +460,8 @@ private async void WelcomeThenLoadAsync()
// Show a note if settings have been reset
if (ConfigurationManager.Current.ShowSettingsResetNoteOnStartup)
{
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await this.ShowMessageAsync(Strings.SettingsHaveBeenReset,
- Strings.SettingsFileFoundWasCorruptOrNotCompatibleMessage,
- MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.SettingsHaveBeenReset,
+ Strings.SettingsFileFoundWasCorruptOrNotCompatibleMessage, ChildWindowIcon.Error);
}
// Show welcome dialog
@@ -593,19 +589,14 @@ private async void MetroWindowMain_Closing(object sender, CancelEventArgs e)
if (WindowState == WindowState.Minimized)
BringWindowToFront();
- var settings = AppearanceManager.MetroDialog;
+ ConfigurationManager.OnDialogOpen();
- settings.AffirmativeButtonText = Strings.Close;
- settings.NegativeButtonText = Strings.Cancel;
- settings.DefaultButtonFocus = MessageDialogResult.Affirmative;
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow, Strings.ConfirmClose,
+ Strings.ConfirmCloseMessage, ChildWindowIcon.Question, Strings.Close, Strings.Cancel);
- ConfigurationManager.OnDialogOpen();
- var result = await this.ShowMessageAsync(Strings.ConfirmClose,
- Strings.ConfirmCloseMessage, MessageDialogStyle.AffirmativeAndNegative,
- settings);
ConfigurationManager.OnDialogClose();
- if (result != MessageDialogResult.Affirmative)
+ if (!result)
return;
_isClosing = true;
@@ -1047,12 +1038,9 @@ private async void EventSystem_RedirectDataToApplicationEvent(object sender, Eve
// Show error message if the application was not found
if (application == null)
{
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await this.ShowMessageAsync(Strings.Error,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
string.Format(Strings.CouldNotFindApplicationXXXMessage,
- data.Application.ToString()));
+ $"{data.Application}"), ChildWindowIcon.Error);
return;
}
@@ -1464,16 +1452,10 @@ private async void SwitchProfile(ProfileFileInfo info)
ConfigurationManager.Current.ProfileManagerErrorMessage =
Strings.ProfileFileCouldNotBeLoaded;
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- settings.DefaultButtonFocus = MessageDialogResult.Affirmative;
-
ConfigurationManager.OnDialogOpen();
- await this.ShowMessageAsync(Strings.ProfileFileCouldNotBeLoaded,
- string.Format(Strings.ProfileFileCouldNotBeLoadedMessage, ex.Message),
- MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.ProfileFileCouldNotBeLoaded,
+ string.Format(Strings.ProfileFileCouldNotBeLoadedMessage, ex.Message), ChildWindowIcon.Error);
ConfigurationManager.OnDialogClose();
}
diff --git a/Source/NETworkManager/NETworkManager.csproj b/Source/NETworkManager/NETworkManager.csproj
index 11a8d3dd31..91b3d08b42 100644
--- a/Source/NETworkManager/NETworkManager.csproj
+++ b/Source/NETworkManager/NETworkManager.csproj
@@ -141,7 +141,7 @@
Wpf
Designer
-
+
MSBuild:Compile
Wpf
Designer
diff --git a/Source/NETworkManager/ProfileDialogManager.cs b/Source/NETworkManager/ProfileDialogManager.cs
index 2018416487..5f6d9c83f9 100644
--- a/Source/NETworkManager/ProfileDialogManager.cs
+++ b/Source/NETworkManager/ProfileDialogManager.cs
@@ -553,7 +553,7 @@ public static async Task ShowDeleteProfileDialog(Window parentWindow, IProfileMa
viewModel.OnProfileManagerDialogOpen();
- var result = await DialogHelper.ShowOKCancelMessageAsync(parentWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(parentWindow,
profiles.Count == 1 ? Strings.DeleteProfile : Strings.DeleteProfiles,
profiles.Count == 1 ? Strings.DeleteProfileMessage : Strings.DeleteProfilesMessage,
ChildWindowIcon.Info,
@@ -639,7 +639,7 @@ public static async Task ShowDeleteGroupDialog(Window parentWindow, IProfileMana
{
viewModel.OnProfileManagerDialogOpen();
- var result = await DialogHelper.ShowOKCancelMessageAsync(parentWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(parentWindow,
Strings.DeleteGroup,
Strings.DeleteGroupMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/Resources/Styles/MetroDialogStyles.xaml b/Source/NETworkManager/Resources/Styles/MetroDialogStyles.xaml
deleted file mode 100644
index e346ab0834..0000000000
--- a/Source/NETworkManager/Resources/Styles/MetroDialogStyles.xaml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/NETworkManager/ViewModels/ARPTableAddEntryViewModel.cs b/Source/NETworkManager/ViewModels/ARPTableAddEntryViewModel.cs
index a24b7ea6e0..ddf627f729 100644
--- a/Source/NETworkManager/ViewModels/ARPTableAddEntryViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ARPTableAddEntryViewModel.cs
@@ -7,7 +7,7 @@ namespace NETworkManager.ViewModels;
///
/// View model for adding an ARP table entry.
///
-public class ArpTableAddEntryViewModel : ViewModelBase
+public class ARPTableAddEntryViewModel : ViewModelBase
{
///
/// Backing field for .
@@ -20,12 +20,12 @@ public class ArpTableAddEntryViewModel : ViewModelBase
private string _macAddress;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The action to execute when the add command is invoked.
/// The action to execute when the cancel command is invoked.
- public ArpTableAddEntryViewModel(Action addCommand,
- Action cancelHandler)
+ public ARPTableAddEntryViewModel(Action addCommand,
+ Action cancelHandler)
{
AddCommand = new RelayCommand(_ => addCommand(this));
CancelCommand = new RelayCommand(_ => cancelHandler(this));
diff --git a/Source/NETworkManager/ViewModels/ARPTableViewModel.cs b/Source/NETworkManager/ViewModels/ARPTableViewModel.cs
index b7de224c1b..dcab0e5f5a 100644
--- a/Source/NETworkManager/ViewModels/ARPTableViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ARPTableViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -33,10 +32,9 @@ public class ARPTableViewModel : ViewModelBase
/// Initializes a new instance of the class.
///
/// The dialog coordinator instance.
- public ARPTableViewModel(IDialogCoordinator instance)
+ public ARPTableViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
// Result view + search
ResultsView = CollectionViewSource.GetDefaultView(Results);
@@ -81,11 +79,6 @@ public ARPTableViewModel(IDialogCoordinator instance)
private static readonly ILog Log = LogManager.GetLogger(typeof(ARPTableViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Indicates whether the view model is loading.
///
@@ -465,14 +458,13 @@ private async Task AddEntryAction()
{
IsStatusMessageDisplayed = false;
- var customDialog = new CustomDialog
- {
- Title = Strings.AddEntry
- };
+ var childWindow = new ARPTableAddEntryChildWindow();
- var arpTableAddEntryViewModel = new ArpTableAddEntryViewModel(async instance =>
+
+ var childWindowViewModel = new ARPTableAddEntryViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
try
{
@@ -489,14 +481,19 @@ private async Task AddEntryAction()
StatusMessage = ex.Message;
IsStatusMessageDisplayed = true;
}
- }, _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); });
-
- customDialog.Content = new ARPTableAddEntryDialog
+ }, _ =>
{
- DataContext = arpTableAddEntryViewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ childWindow.Title = Strings.AddEntry;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
+
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -527,12 +524,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.ARPTable_ExportFileType = instance.FileType;
@@ -552,7 +546,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/BitCalculatorViewModel.cs b/Source/NETworkManager/ViewModels/BitCalculatorViewModel.cs
index b4e2c816a5..5ff6cc9aca 100644
--- a/Source/NETworkManager/ViewModels/BitCalculatorViewModel.cs
+++ b/Source/NETworkManager/ViewModels/BitCalculatorViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -26,11 +25,6 @@ public class BitCalculatorViewModel : ViewModelBase
{
#region Variables
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
private static readonly ILog Log = LogManager.GetLogger(typeof(BitCalculatorViewModel));
///
@@ -180,11 +174,9 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public BitCalculatorViewModel(IDialogCoordinator instance)
+ public BitCalculatorViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
InputHistoryView = CollectionViewSource.GetDefaultView(SettingsManager.Current.BitCalculator_InputHistory);
@@ -258,12 +250,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.BitCalculator_ExportFileType = instance.FileType;
@@ -283,7 +272,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/ConnectionsViewModel.cs b/Source/NETworkManager/ViewModels/ConnectionsViewModel.cs
index 7298212d95..996707a1f8 100644
--- a/Source/NETworkManager/ViewModels/ConnectionsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ConnectionsViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization;
using NETworkManager.Localization.Resources;
@@ -33,13 +32,10 @@ public class ConnectionsViewModel : ViewModelBase
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public ConnectionsViewModel(IDialogCoordinator instance)
+ public ConnectionsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
// Result view + search
ResultsView = CollectionViewSource.GetDefaultView(Results);
@@ -108,11 +104,6 @@ private async void AutoRefreshTimer_Tick(object sender, EventArgs e)
private static readonly ILog Log = LogManager.GetLogger(typeof(ConnectionsViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Indicates whether the view model is loading.
///
@@ -412,12 +403,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Connections_ExportFileType = instance.FileType;
@@ -438,7 +426,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/DNSLookupSettingsViewModel.cs b/Source/NETworkManager/ViewModels/DNSLookupSettingsViewModel.cs
index be62bedbcf..8ab7dcdaf4 100644
--- a/Source/NETworkManager/ViewModels/DNSLookupSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/DNSLookupSettingsViewModel.cs
@@ -1,5 +1,4 @@
using DnsClient;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Network;
@@ -34,11 +33,6 @@ public class DNSLookupSettingsViewModel : ViewModelBase
///
private readonly ServerConnectionInfo _profileDialogDefaultValues = new("10.0.0.1", 53, TransportProtocol.Udp);
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Gets the collection view of DNS servers.
///
@@ -325,13 +319,10 @@ public int Timeout
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public DNSLookupSettingsViewModel(IDialogCoordinator instance)
+ public DNSLookupSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
DNSServers = CollectionViewSource.GetDefaultView(SettingsManager.Current.DNSLookup_DNSServers);
DNSServers.SortDescriptions.Add(new SortDescription(nameof(DNSServerConnectionInfoProfile.Name),
ListSortDirection.Ascending));
@@ -343,6 +334,8 @@ public DNSLookupSettingsViewModel(IDialogCoordinator instance)
return !info.UseWindowsDNSServer;
};
+ SelectedDNSServer = DNSServers.Cast().FirstOrDefault(x => !x.UseWindowsDNSServer);
+
LoadSettings();
_isLoading = false;
@@ -358,7 +351,7 @@ private void LoadSettings()
CustomDNSSuffix = SettingsManager.Current.DNSLookup_CustomDNSSuffix;
Recursion = SettingsManager.Current.DNSLookup_Recursion;
UseCache = SettingsManager.Current.DNSLookup_UseCache;
- QueryClasses = Enum.GetValues(typeof(QueryClass)).Cast().OrderBy(x => x.ToString()).ToList();
+ QueryClasses = [.. Enum.GetValues().Cast().OrderBy(x => x.ToString())];
QueryClass = QueryClasses.First(x => x == SettingsManager.Current.DNSLookup_QueryClass);
//ShowOnlyMostCommonQueryTypes = SettingsManager.Current.DNSLookup_ShowOnlyMostCommonQueryTypes;
UseTCPOnly = SettingsManager.Current.DNSLookup_UseTCPOnly;
@@ -441,7 +434,7 @@ private async Task AddDNSServer()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -473,7 +466,7 @@ public async Task EditDNSServer()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -481,7 +474,7 @@ public async Task EditDNSServer()
///
private async Task DeleteDNSServer()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteDNSServer,
Strings.DeleteDNSServerMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/DNSLookupViewModel.cs b/Source/NETworkManager/ViewModels/DNSLookupViewModel.cs
index 0924da7dd2..5e2a38a1fc 100644
--- a/Source/NETworkManager/ViewModels/DNSLookupViewModel.cs
+++ b/Source/NETworkManager/ViewModels/DNSLookupViewModel.cs
@@ -1,7 +1,6 @@
using DnsClient;
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -15,7 +14,6 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
-using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
@@ -34,11 +32,6 @@ public class DNSLookupViewModel : ViewModelBase
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(DNSLookupViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private bool _firstLoad = true;
private bool _closed;
@@ -304,15 +297,12 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The ID of the tab.
/// The host to lookup.
- public DNSLookupViewModel(IDialogCoordinator instance, Guid tabId, string host)
+ public DNSLookupViewModel(Guid tabId, string host)
{
_isLoading = true;
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.DNSLookupTabCount++;
_tabId = tabId;
@@ -622,12 +612,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.DNSLookup_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/DiscoveryProtocolViewModel.cs b/Source/NETworkManager/ViewModels/DiscoveryProtocolViewModel.cs
index f57a45d2fe..b3a84ac13e 100644
--- a/Source/NETworkManager/ViewModels/DiscoveryProtocolViewModel.cs
+++ b/Source/NETworkManager/ViewModels/DiscoveryProtocolViewModel.cs
@@ -1,5 +1,4 @@
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -26,11 +25,6 @@ public class DiscoveryProtocolViewModel : ViewModelBase
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(DiscoveryProtocolViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// The discovery protocol capture instance.
///
@@ -296,12 +290,10 @@ private set
/// Initializes a new instance of the class.
///
/// The dialog coordinator instance.
- public DiscoveryProtocolViewModel(IDialogCoordinator instance)
+ public DiscoveryProtocolViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
_discoveryProtocolCapture.PackageReceived += DiscoveryProtocol_PackageReceived;
_discoveryProtocolCapture.ErrorReceived += DiscoveryProtocol_ErrorReceived;
_discoveryProtocolCapture.WarningReceived += DiscoveryProtocol_WarningReceived;
@@ -351,8 +343,7 @@ private async Task RestartAsAdminAction()
}
catch (Exception ex)
{
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
@@ -392,8 +383,7 @@ private async Task CaptureAction()
{
Log.Error("Error while trying to capture", ex);
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
@@ -423,12 +413,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.DiscoveryProtocol_ExportFileType = instance.FileType;
@@ -449,7 +436,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/DropdownViewModel.cs b/Source/NETworkManager/ViewModels/DropdownViewModel.cs
index a24ebe2b58..1cd4370ef6 100644
--- a/Source/NETworkManager/ViewModels/DropdownViewModel.cs
+++ b/Source/NETworkManager/ViewModels/DropdownViewModel.cs
@@ -9,7 +9,7 @@ namespace NETworkManager.ViewModels;
///
/// View model for a dropdown dialog.
///
-public class DropdownViewModel : ViewModelBase
+public class DropDownViewModel : ViewModelBase
{
///
/// Backing field for .
@@ -27,13 +27,13 @@ public class DropdownViewModel : ViewModelBase
private string _selectedValue;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The action to execute when OK is clicked.
/// The action to execute when Cancel is clicked.
/// The list of values to display in the dropdown.
/// The description of the value.
- public DropdownViewModel(Action okCommand, Action cancelHandler,
+ public DropDownViewModel(Action okCommand, Action cancelHandler,
List values, string valueDescription)
{
ValueDescription = valueDescription;
diff --git a/Source/NETworkManager/ViewModels/HostsFileEditorViewModel.cs b/Source/NETworkManager/ViewModels/HostsFileEditorViewModel.cs
index 08f77b591b..3734abd491 100644
--- a/Source/NETworkManager/ViewModels/HostsFileEditorViewModel.cs
+++ b/Source/NETworkManager/ViewModels/HostsFileEditorViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -29,11 +28,6 @@ public class HostsFileEditorViewModel : ViewModelBase
private static readonly ILog Log = LogManager.GetLogger(typeof(HostsFileEditorViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Indicates whether the view model is loading.
///
@@ -222,11 +216,9 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public HostsFileEditorViewModel(IDialogCoordinator instance)
+ public HostsFileEditorViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
// Result view + search
ResultsView = CollectionViewSource.GetDefaultView(Results);
@@ -322,12 +314,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.HostsFileEditor_ExportFileType = instance.FileType;
@@ -347,7 +336,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -439,7 +428,7 @@ private async Task AddEntryAction()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -489,7 +478,7 @@ private async Task EditEntryAction()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -505,7 +494,7 @@ private async Task DeleteEntryAction()
{
IsModifying = true;
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteEntry,
string.Format(Strings.DeleteHostsFileEntryMessage, SelectedResult.IPAddress, SelectedResult.Hostname,
string.IsNullOrEmpty(SelectedResult.Comment) ? "" : $"# {SelectedResult.Comment}"),
@@ -557,21 +546,8 @@ private async Task ShowErrorMessageAsync(HostsFileEntryModifyResult result)
_ => Strings.UnkownError
};
- var childWindow = new OKMessageChildWindow();
-
- var childWindowViewModel = new OKMessageViewModel(_ =>
- {
- childWindow.IsOpen = false;
- ConfigurationManager.Current.IsChildWindowOpen = false;
- }, message, ChildWindowIcon.Error, Strings.OK);
-
- childWindow.Title = Strings.Error;
-
- childWindow.DataContext = childWindowViewModel;
-
- ConfigurationManager.Current.IsChildWindowOpen = true;
-
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error, message,
+ ChildWindowIcon.Error);
}
///
@@ -590,21 +566,8 @@ private async Task RestartAsAdminAction()
}
catch (Exception ex)
{
- var childWindow = new OKMessageChildWindow();
-
- var childWindowViewModel = new OKMessageViewModel(_ =>
- {
- childWindow.IsOpen = false;
- ConfigurationManager.Current.IsChildWindowOpen = false;
- }, ex.Message, ChildWindowIcon.Error, Strings.OK);
-
- childWindow.Title = Strings.Error;
-
- childWindow.DataContext = childWindowViewModel;
-
- ConfigurationManager.Current.IsChildWindowOpen = true;
-
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error, ex.Message,
+ ChildWindowIcon.Error);
}
}
diff --git a/Source/NETworkManager/ViewModels/IPGeolocationHostViewModel.cs b/Source/NETworkManager/ViewModels/IPGeolocationHostViewModel.cs
index bdea0a12fb..9eb0a0f519 100644
--- a/Source/NETworkManager/ViewModels/IPGeolocationHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/IPGeolocationHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
diff --git a/Source/NETworkManager/ViewModels/IPGeolocationViewModel.cs b/Source/NETworkManager/ViewModels/IPGeolocationViewModel.cs
index 8538ce7c66..ea4a691b6a 100644
--- a/Source/NETworkManager/ViewModels/IPGeolocationViewModel.cs
+++ b/Source/NETworkManager/ViewModels/IPGeolocationViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -28,11 +27,6 @@ public class IPGeolocationViewModel : ViewModelBase
private static readonly ILog Log = LogManager.GetLogger(typeof(IPGeolocationViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private bool _firstLoad = true;
private bool _closed;
@@ -175,13 +169,10 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The ID of the tab.
/// The host to query.
- public IPGeolocationViewModel(IDialogCoordinator instance, Guid tabId, string host)
+ public IPGeolocationViewModel(Guid tabId, string host)
{
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.IPGeolocationTabCount++;
_tabId = tabId;
@@ -335,12 +326,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.IPGeolocation_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/IPScannerHostViewModel.cs b/Source/NETworkManager/ViewModels/IPScannerHostViewModel.cs
index 995d91872c..3e03a4f207 100644
--- a/Source/NETworkManager/ViewModels/IPScannerHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/IPScannerHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
diff --git a/Source/NETworkManager/ViewModels/IPScannerSettingsViewModel.cs b/Source/NETworkManager/ViewModels/IPScannerSettingsViewModel.cs
index b60ed88f02..7234d9563c 100644
--- a/Source/NETworkManager/ViewModels/IPScannerSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/IPScannerSettingsViewModel.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using MahApps.Metro.SimpleChildWindow;
+using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Settings;
using NETworkManager.Utilities;
@@ -24,11 +23,6 @@ public class IPScannerSettingsViewModel : ViewModelBase
///
private readonly bool _isLoading;
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Backing field for .
///
@@ -374,13 +368,10 @@ public int MaxPortThreads
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public IPScannerSettingsViewModel(IDialogCoordinator instance)
+ public IPScannerSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
CustomCommands = CollectionViewSource.GetDefaultView(SettingsManager.Current.IPScanner_CustomCommands);
CustomCommands.SortDescriptions.Add(new SortDescription(nameof(CustomCommandInfo.Name),
ListSortDirection.Ascending));
@@ -458,56 +449,67 @@ private void DeleteCustomCommandAction()
#region Methods
///
- /// Adds a new custom command.
+ /// Add a new custom command.
///
- private async void AddCustomCommand()
+ private Task AddCustomCommand()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.AddCustomCommand
- };
+ var childWindow = new CustomCommandChildWindow();
- var customCommandViewModel = new CustomCommandViewModel(instance =>
+ var childWindowViewModel = new CustomCommandViewModel(instance =>
+ {
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+
+ SettingsManager.Current.IPScanner_CustomCommands.Add(new CustomCommandInfo(
+ instance.ID,
+ instance.Name,
+ instance.FilePath,
+ instance.Arguments)
+ );
+ }, _ =>
{
- _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
- SettingsManager.Current.IPScanner_CustomCommands.Add(new CustomCommandInfo(instance.ID, instance.Name,
- instance.FilePath, instance.Arguments));
- }, _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); });
+ childWindow.Title = Strings.AddCustomCommand;
- customDialog.Content = new CustomCommandDialog
- {
- DataContext = customCommandViewModel
- };
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
- /// Edits the selected custom command.
+ /// Edit the selected custom command.
///
- public async void EditCustomCommand()
+ public Task EditCustomCommand()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.EditCustomCommand
- };
- var customCommandViewModel = new CustomCommandViewModel(instance =>
+ var childWindow = new CustomCommandChildWindow();
+
+ var childWindowViewModel = new CustomCommandViewModel(instance =>
{
- _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
SettingsManager.Current.IPScanner_CustomCommands.Remove(SelectedCustomCommand);
SettingsManager.Current.IPScanner_CustomCommands.Add(new CustomCommandInfo(instance.ID, instance.Name,
instance.FilePath, instance.Arguments));
- }, _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); }, true, SelectedCustomCommand);
-
- customDialog.Content = new CustomCommandDialog
+ }, _ =>
{
- DataContext = customCommandViewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ }, true, SelectedCustomCommand);
+
+ childWindow.Title = Strings.EditCustomCommand;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -515,7 +517,7 @@ public async void EditCustomCommand()
///
private async Task DeleteCustomCommand()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteCustomCommand,
Strings.DeleteCustomCommandMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/IPScannerViewModel.cs b/Source/NETworkManager/ViewModels/IPScannerViewModel.cs
index a747ccb077..8ac07d114d 100644
--- a/Source/NETworkManager/ViewModels/IPScannerViewModel.cs
+++ b/Source/NETworkManager/ViewModels/IPScannerViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization;
@@ -39,8 +38,6 @@ public class IPScannerViewModel : ViewModelBase, IProfileManagerMinimal
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(IPScannerViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private CancellationTokenSource _cancellationTokenSource;
private readonly Guid _tabId;
@@ -285,13 +282,10 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The unique identifier for the tab.
/// The initial host or IP range to scan.
- public IPScannerViewModel(IDialogCoordinator instance, Guid tabId, string hostOrIPRange)
+ public IPScannerViewModel(Guid tabId, string hostOrIPRange)
{
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.IPScannerTabCount++;
_tabId = tabId;
@@ -564,15 +558,17 @@ private async Task DetectIPRange()
}
if (!subnetmaskDetected)
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.CouldNotDetectSubnetmask, MessageDialogStyle.Affirmative,
- AppearanceManager.MetroDialog);
+ {
+ var window = Application.Current.Windows.OfType().FirstOrDefault(x => x.IsActive);
+
+ await DialogHelper.ShowMessageAsync(window, Strings.Error, Strings.CouldNotDetectSubnetmask, ChildWindowIcon.Error);
+ }
}
else
{
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.CouldNotDetectLocalIPAddressMessage, MessageDialogStyle.Affirmative,
- AppearanceManager.MetroDialog);
+ var window = Application.Current.Windows.OfType().FirstOrDefault(x => x.IsActive);
+
+ await DialogHelper.ShowMessageAsync(window, Strings.Error, Strings.CouldNotDetectLocalIPAddressMessage, ChildWindowIcon.Error);
}
IsSubnetDetectionRunning = false;
@@ -614,10 +610,9 @@ private async Task CustomCommand(object guid)
{
Log.Error("Error trying to run custom command", ex);
- await _dialogCoordinator.ShowMessageAsync(this,
- Strings.ResourceManager.GetString("Error",
- LocalizationManager.GetInstance().Culture), ex.Message, MessageDialogStyle.Affirmative,
- AppearanceManager.MetroDialog);
+ var window = Application.Current.Windows.OfType().FirstOrDefault(x => x.IsActive);
+
+ await DialogHelper.ShowMessageAsync(window, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
}
@@ -667,12 +662,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.IPScanner_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/ListenersViewModel.cs b/Source/NETworkManager/ViewModels/ListenersViewModel.cs
index 5d47544065..a7b4fe06cc 100644
--- a/Source/NETworkManager/ViewModels/ListenersViewModel.cs
+++ b/Source/NETworkManager/ViewModels/ListenersViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -32,13 +31,10 @@ public class ListenersViewModel : ViewModelBase
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public ListenersViewModel(IDialogCoordinator instance)
+ public ListenersViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
// Result view + search
ResultsView = CollectionViewSource.GetDefaultView(Results);
@@ -99,11 +95,6 @@ private async void AutoRefreshTimer_Tick(object sender, EventArgs e)
private static readonly ILog Log = LogManager.GetLogger(typeof(ListenersViewModel));
- ///
- /// The dialog coordinator instance.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Indicates whether the view model is loading.
///
@@ -402,12 +393,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Listeners_ExportFileType = instance.FileType;
@@ -426,7 +414,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/LookupOUILookupViewModel.cs b/Source/NETworkManager/ViewModels/LookupOUILookupViewModel.cs
index 76daee1589..3ee09ff332 100644
--- a/Source/NETworkManager/ViewModels/LookupOUILookupViewModel.cs
+++ b/Source/NETworkManager/ViewModels/LookupOUILookupViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -32,11 +31,8 @@ public class LookupOUILookupViewModel : ViewModelBase
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public LookupOUILookupViewModel(IDialogCoordinator instance)
+ public LookupOUILookupViewModel()
{
- _dialogCoordinator = instance;
-
// Search history
SearchHistoryView = CollectionViewSource.GetDefaultView(SettingsManager.Current.Lookup_OUI_SearchHistory);
@@ -77,11 +73,6 @@ private void AddSearchToHistory(string macAddressOrVendor)
///
private static readonly ILog Log = LogManager.GetLogger(typeof(LookupOUILookupViewModel));
- ///
- /// The dialog coordinator.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Backing field for .
///
@@ -338,12 +329,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Lookup_OUI_ExportFileType = instance.FileType;
@@ -363,7 +351,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/LookupPortViewModel.cs b/Source/NETworkManager/ViewModels/LookupPortViewModel.cs
index 7051fa87f0..4c93491d56 100644
--- a/Source/NETworkManager/ViewModels/LookupPortViewModel.cs
+++ b/Source/NETworkManager/ViewModels/LookupPortViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -33,11 +32,8 @@ public class LookupPortLookupViewModel : ViewModelBase
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public LookupPortLookupViewModel(IDialogCoordinator instance)
+ public LookupPortLookupViewModel()
{
- _dialogCoordinator = instance;
-
SearchHistoryView = CollectionViewSource.GetDefaultView(SettingsManager.Current.Lookup_Port_SearchHistory);
ResultsView = CollectionViewSource.GetDefaultView(Results);
}
@@ -73,11 +69,6 @@ private void AddSearchToHistory(string portOrService)
///
private static readonly ILog Log = LogManager.GetLogger(typeof(LookupPortLookupViewModel));
- ///
- /// The dialog coordinator.
- ///
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Backing field for .
///
@@ -399,12 +390,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Lookup_Port_ExportFileType = instance.FileType;
@@ -424,7 +412,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
diff --git a/Source/NETworkManager/ViewModels/OKCancelMessageViewModel.cs b/Source/NETworkManager/ViewModels/MessageConfirmationViewModel.cs
similarity index 64%
rename from Source/NETworkManager/ViewModels/OKCancelMessageViewModel.cs
rename to Source/NETworkManager/ViewModels/MessageConfirmationViewModel.cs
index ba61091858..3472366e86 100644
--- a/Source/NETworkManager/ViewModels/OKCancelMessageViewModel.cs
+++ b/Source/NETworkManager/ViewModels/MessageConfirmationViewModel.cs
@@ -7,33 +7,33 @@ namespace NETworkManager.ViewModels;
///
/// Represents the ViewModel for a message dialog with OK and Cancel options.
///
-public class OKCancelMessageViewModel : ViewModelBase
+public class MessageConfirmationViewModel : ViewModelBase
{
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
- /// The action to execute when the OK button is clicked.
+ /// The action to execute when the confirm button is clicked.
/// The action to execute when the Cancel button is clicked.
/// The message to display.
/// The icon to display in the message window.
- /// The text for the OK button.
- /// The text for the Cancel button.
- public OKCancelMessageViewModel(Action okCommand,
- Action cancelHandler, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string okButtonText = null, string cancelButtonText = null)
+ /// The text for the confirm button.
+ /// The text for the cancel button.
+ public MessageConfirmationViewModel(Action confirmCommand,
+ Action cancelHandler, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string confirmButtonText = null, string cancelButtonText = null)
{
- OKCommand = new RelayCommand(_ => okCommand(this));
+ ConfirmCommand = new RelayCommand(_ => confirmCommand(this));
CancelCommand = new RelayCommand(_ => cancelHandler(this));
Message = message;
- OKButtonText = okButtonText ?? Localization.Resources.Strings.OK;
+ ConfirmButtonText = confirmButtonText ?? Localization.Resources.Strings.OK;
CancelButtonText = cancelButtonText ?? Localization.Resources.Strings.Cancel;
}
///
/// Gets the command for the OK button.
///
- public ICommand OKCommand { get; }
+ public ICommand ConfirmCommand { get; }
///
/// Gets the command for the Cancel button.
@@ -58,20 +58,20 @@ private init
}
}
- private readonly string _okButtonText;
+ private readonly string _confirmButtonText;
///
- /// Gets the text for the OK button.
+ /// Gets the text for the confirm button.
///
- public string OKButtonText
+ public string ConfirmButtonText
{
- get => _okButtonText;
+ get => _confirmButtonText;
private init
{
- if (value == _okButtonText)
+ if (value == _confirmButtonText)
return;
- _okButtonText = value;
+ _confirmButtonText = value;
OnPropertyChanged();
}
}
@@ -79,7 +79,7 @@ private init
private readonly string _cancelButtonText;
///
- /// Gets the text for the Cancel button.
+ /// Gets the text for the cancel button.
///
public string CancelButtonText
{
diff --git a/Source/NETworkManager/ViewModels/OKMessageViewModel.cs b/Source/NETworkManager/ViewModels/MessageViewModel.cs
similarity index 59%
rename from Source/NETworkManager/ViewModels/OKMessageViewModel.cs
rename to Source/NETworkManager/ViewModels/MessageViewModel.cs
index 690e177d58..1dc4a20c16 100644
--- a/Source/NETworkManager/ViewModels/OKMessageViewModel.cs
+++ b/Source/NETworkManager/ViewModels/MessageViewModel.cs
@@ -7,29 +7,29 @@ namespace NETworkManager.ViewModels;
///
/// Represents the ViewModel for a message dialog with an OK option.
///
-public class OKMessageViewModel : ViewModelBase
+public class MessageViewModel : ViewModelBase
{
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
- /// The action to execute when the OK button is clicked.
+ /// The action to execute when the confirm button is clicked.
/// The message to display.
/// The icon to display in the message window.
- /// The text for the OK button.
- public OKMessageViewModel(Action okCommand, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string okButtonText = null)
+ /// The text for the OK button.
+ public MessageViewModel(Action confirmCommand, string message, ChildWindowIcon icon = ChildWindowIcon.Info, string confirmButtonText = null)
{
- OKCommand = new RelayCommand(_ => okCommand(this));
+ ConfirmCommand = new RelayCommand(_ => confirmCommand(this));
Message = message;
- OKButtonText = okButtonText ?? Localization.Resources.Strings.OK;
+ ConfirmButtonText = confirmButtonText ?? Localization.Resources.Strings.OK;
Icon = icon;
}
///
/// Gets the command for the OK button.
///
- public ICommand OKCommand { get; }
+ public ICommand ConfirmCommand { get; }
private readonly string _message;
@@ -49,20 +49,20 @@ private init
}
}
- private readonly string _okButtonText;
+ private readonly string _confirmButtonText;
///
- /// Gets the text for the OK button.
+ /// Gets the text for the confirm button.
///
- public string OKButtonText
+ public string ConfirmButtonText
{
- get => _okButtonText;
+ get => _confirmButtonText;
private init
{
- if (value == _okButtonText)
+ if (value == _confirmButtonText)
return;
- _okButtonText = value;
+ _confirmButtonText = value;
OnPropertyChanged();
}
}
diff --git a/Source/NETworkManager/ViewModels/NetworkInterfaceViewModel.cs b/Source/NETworkManager/ViewModels/NetworkInterfaceViewModel.cs
index cfbff48e89..08d2a724e5 100644
--- a/Source/NETworkManager/ViewModels/NetworkInterfaceViewModel.cs
+++ b/Source/NETworkManager/ViewModels/NetworkInterfaceViewModel.cs
@@ -3,8 +3,8 @@
using LiveCharts.Wpf;
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
+using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
using NETworkManager.Models.EventSystem;
@@ -27,7 +27,6 @@
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Threading;
-using NETworkManager.Controls;
using NetworkInterface = NETworkManager.Models.Network.NetworkInterface;
namespace NETworkManager.ViewModels;
@@ -41,7 +40,6 @@ public class NetworkInterfaceViewModel : ViewModelBase, IProfileManager
private static readonly ILog Log = LogManager.GetLogger(typeof(NetworkInterfaceViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
private readonly DispatcherTimer _searchDispatcherTimer = new();
private bool _searchDisabled;
private BandwidthMeter _bandwidthMeter;
@@ -761,12 +759,10 @@ public GridLength ProfileWidth
/// Initializes a new instance of the class.
///
/// The dialog coordinator instance.
- public NetworkInterfaceViewModel(IDialogCoordinator instance)
+ public NetworkInterfaceViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
LoadNetworkInterfaces().ConfigureAwait(false);
InitialBandwidthChart();
@@ -919,12 +915,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.NetworkInterface_ExportFileType = instance.FileType;
@@ -945,7 +938,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -1222,24 +1215,27 @@ private void Renew6Action()
private async Task AddIPv4AddressAction()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.AddIPv4Address
- };
+ var childWindow = new IPAddressAndSubnetmaskChildWindow();
- var ipAddressAndSubnetmaskViewModel = new IPAddressAndSubnetmaskViewModel(async instance =>
+ var childWindowViewModel = new IPAddressAndSubnetmaskViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
await AddIPv4Address(instance.IPAddress, instance.Subnetmask);
- }, _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); });
-
- customDialog.Content = new IPAddressAndSubnetmaskDialog
+ }, _ =>
{
- DataContext = ipAddressAndSubnetmaskViewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
+
+ childWindow.Title = Strings.AddIPv4Address;
+
+ childWindow.DataContext = childWindowViewModel;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ ConfigurationManager.Current.IsChildWindowOpen = true;
+
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
///
@@ -1250,26 +1246,30 @@ private async Task AddIPv4AddressAction()
private async Task RemoveIPv4AddressAction()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.RemoveIPv4Address
- };
+ var childWindow = new DropDownChildWindow();
- var dropdownViewModel = new DropdownViewModel(async instance =>
+ var childWindowViewModel = new DropDownViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
await RemoveIPv4Address(instance.SelectedValue.Split("/")[0]);
- }, _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); },
- SelectedNetworkInterface.IPv4Address.Select(x => $"{x.Item1}/{Subnetmask.ConvertSubnetmaskToCidr(x.Item2)}")
- .ToList(), Strings.IPv4Address);
+ }, _ =>
+ {
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ },
+ [.. SelectedNetworkInterface.IPv4Address.Select(x => $"{x.Item1}/{Subnetmask.ConvertSubnetmaskToCidr(x.Item2)}")],
+ Strings.IPv4Address
+ );
- customDialog.Content = new DropdownDialog
- {
- DataContext = dropdownViewModel
- };
+ childWindow.Title = Strings.RemoveIPv4Address;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
@@ -1476,8 +1476,8 @@ private async Task OpenNetworkConnectionsAsync()
}
catch (Exception ex)
{
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error, ex.Message,
+ ChildWindowIcon.Error);
}
}
diff --git a/Source/NETworkManager/ViewModels/PingMonitorHostViewModel.cs b/Source/NETworkManager/ViewModels/PingMonitorHostViewModel.cs
index c2366c25dc..12918d0ba7 100644
--- a/Source/NETworkManager/ViewModels/PingMonitorHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PingMonitorHostViewModel.cs
@@ -1,5 +1,4 @@
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
@@ -30,7 +29,6 @@ public class PingMonitorHostViewModel : ViewModelBase, IProfileManager
{
#region Variables
- private readonly IDialogCoordinator _dialogCoordinator;
private CancellationTokenSource _cancellationTokenSource;
private readonly DispatcherTimer _searchDispatcherTimer = new();
@@ -407,13 +405,10 @@ public GridLength ProfileWidth
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public PingMonitorHostViewModel(IDialogCoordinator instance)
+ public PingMonitorHostViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
// Host history
HostHistoryView = CollectionViewSource.GetDefaultView(SettingsManager.Current.PingMonitor_HostHistory);
@@ -651,8 +646,8 @@ public bool SetHost(string host, string group = null)
// Check if it is already running or canceling
if (IsRunning || IsCanceling)
{
- _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.CannotSetHostWhileRunningMessage);
+ DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.CannotSetHostWhileRunningMessage, ChildWindowIcon.Error);
return false;
}
diff --git a/Source/NETworkManager/ViewModels/PingMonitorViewModel.cs b/Source/NETworkManager/ViewModels/PingMonitorViewModel.cs
index b75affda55..db205fd8b3 100644
--- a/Source/NETworkManager/ViewModels/PingMonitorViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PingMonitorViewModel.cs
@@ -2,7 +2,6 @@
using LiveCharts.Configurations;
using LiveCharts.Wpf;
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -34,16 +33,13 @@ public class PingMonitorViewModel : ViewModelBase
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The unique identifier for the host.
/// Action to remove the host by its GUID.
/// Tuple containing the IP address and hostname.
/// The group name the host belongs to.
- public PingMonitorViewModel(IDialogCoordinator instance, Guid hostId, Action removeHostByGuid,
+ public PingMonitorViewModel(Guid hostId, Action removeHostByGuid,
(IPAddress ipAddress, string hostname) host, string group)
{
- _dialogCoordinator = instance;
-
HostId = hostId;
_removeHostByGuid = removeHostByGuid;
@@ -63,7 +59,6 @@ public PingMonitorViewModel(IDialogCoordinator instance, Guid hostId, Action
public class PortProfilesViewModel : ViewModelBase
{
- private string _search;
-
- private IList _selectedPortProfiles = new ArrayList();
+ #region Constructor
///
/// Initializes a new instance of the class.
@@ -47,8 +46,16 @@ public PortProfilesViewModel(Action okCommand, Action -1 ||
info.Ports.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1;
};
+
+ SelectedPortProfiles = new ArrayList {
+ PortProfiles.Cast().FirstOrDefault()
+ };
}
+ #endregion
+
+ #region Variables
+
///
/// Gets the command to confirm the selection.
///
@@ -59,6 +66,11 @@ public PortProfilesViewModel(Action okCommand, Action
public ICommand CancelCommand { get; }
+ ///
+ /// Backing field for the Search property.
+ ///
+ private string _search;
+
///
/// Gets or sets the search text to filter the port profiles.
///
@@ -74,6 +86,10 @@ public string Search
PortProfiles.Refresh();
+ SelectedPortProfiles = new ArrayList {
+ PortProfiles.Cast().FirstOrDefault()
+ };
+
OnPropertyChanged();
}
}
@@ -83,6 +99,11 @@ public string Search
///
public ICollectionView PortProfiles { get; }
+ ///
+ /// Backing field for the SelectedPortProfiles property.
+ ///
+ private IList _selectedPortProfiles = new ArrayList();
+
///
/// Gets or sets the list of selected port profiles.
///
@@ -98,13 +119,16 @@ public IList SelectedPortProfiles
OnPropertyChanged();
}
}
+ #endregion
+ #region Methods
///
/// Gets the selected port profiles as a typed collection.
///
/// A collection of selected .
public IEnumerable GetSelectedPortProfiles()
{
- return new List(SelectedPortProfiles.Cast());
+ return [.. SelectedPortProfiles.Cast()];
}
+ #endregion
}
\ No newline at end of file
diff --git a/Source/NETworkManager/ViewModels/PortScannerSettingsViewModel.cs b/Source/NETworkManager/ViewModels/PortScannerSettingsViewModel.cs
index 8869701c0e..5f4ac96980 100644
--- a/Source/NETworkManager/ViewModels/PortScannerSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PortScannerSettingsViewModel.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using MahApps.Metro.SimpleChildWindow;
+using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Network;
using NETworkManager.Settings;
@@ -23,8 +22,6 @@ public class PortScannerSettingsViewModel : ViewModelBase
private readonly bool _isLoading;
- private readonly IDialogCoordinator _dialogCoordinator;
-
///
/// Gets the collection view of port profiles.
///
@@ -160,13 +157,10 @@ public int MaxPortThreads
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
- public PortScannerSettingsViewModel(IDialogCoordinator instance)
+ public PortScannerSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
PortProfiles = CollectionViewSource.GetDefaultView(SettingsManager.Current.PortScanner_PortProfiles);
PortProfiles.SortDescriptions.Add(
new SortDescription(nameof(PortProfileInfo.Name), ListSortDirection.Ascending));
@@ -216,56 +210,62 @@ private void DeletePortProfileAction()
#region Methods
- private async Task AddPortProfile()
+ private Task AddPortProfile()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.AddPortProfile
- };
+ var childWindow = new PortProfileChildWindow();
- var viewModel = new PortProfileViewModel(async instance =>
+ var childWindowViewModel = new PortProfileViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
SettingsManager.Current.PortScanner_PortProfiles.Add(new PortProfileInfo(instance.Name, instance.Ports));
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(this, customDialog); });
-
- customDialog.Content = new PortProfileDialog
+ }, async _ =>
{
- DataContext = viewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
+
+ childWindow.Title = Strings.AddPortProfile;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
- public async Task EditPortProfile()
+ public Task EditPortProfile()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.EditPortProfile
- };
+ var childWindow = new PortProfileChildWindow();
- var viewModel = new PortProfileViewModel(async instance =>
- {
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ var childWindowViewModel = new PortProfileViewModel(async instance =>
+ {
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
- SettingsManager.Current.PortScanner_PortProfiles.Remove(SelectedPortProfile);
- SettingsManager.Current.PortScanner_PortProfiles.Add(new PortProfileInfo(instance.Name,
- instance.Ports));
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(this, customDialog); }, true,
+ SettingsManager.Current.PortScanner_PortProfiles.Remove(SelectedPortProfile);
+ SettingsManager.Current.PortScanner_PortProfiles.Add(new PortProfileInfo(instance.Name,
+ instance.Ports));
+ }, async _ =>
+ {
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ }, true,
SelectedPortProfile);
- customDialog.Content = new PortProfileDialog
- {
- DataContext = viewModel
- };
+ childWindow.Title = Strings.EditPortProfile;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private async Task DeletePortProfile()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeletePortProfile,
Strings.DeletePortProfileMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/PortScannerViewModel.cs b/Source/NETworkManager/ViewModels/PortScannerViewModel.cs
index 8a73c5ac6f..0143f57e31 100644
--- a/Source/NETworkManager/ViewModels/PortScannerViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PortScannerViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -33,8 +32,6 @@ public class PortScannerViewModel : ViewModelBase
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(PortScannerViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private CancellationTokenSource _cancellationTokenSource;
private readonly Guid _tabId;
@@ -279,14 +276,11 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The unique identifier for the tab.
/// The initial host to scan.
/// The initial ports to scan.
- public PortScannerViewModel(IDialogCoordinator instance, Guid tabId, string host, string port)
+ public PortScannerViewModel(Guid tabId, string host, string port)
{
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.PortScannerTabCount++;
_tabId = tabId;
@@ -385,24 +379,27 @@ private async Task OpenPortProfileSelection()
{
var window = Application.Current.Windows.OfType().FirstOrDefault(x => x.IsActive);
- var customDialog = new CustomDialog
- {
- Title = Strings.SelectPortProfile
- };
+ var childWindow = new PortProfilesChildWindow(window);
- var viewModel = new PortProfilesViewModel(async instance =>
+ var childWindowViewModel = new PortProfilesViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(window, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
Ports = string.Join("; ", instance.GetSelectedPortProfiles().Select(x => x.Ports));
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(window, customDialog); });
-
- customDialog.Content = new PortProfilesDialog
+ }, async _ =>
{
- DataContext = viewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
+
+ childWindow.Title = Strings.SelectPortProfile;
+
+ childWindow.DataContext = childWindowViewModel;
- await _dialogCoordinator.ShowMetroDialogAsync(window, customDialog);
+ ConfigurationManager.Current.IsChildWindowOpen = true;
+
+ await window.ShowChildWindowAsync(childWindow);
}
private async Task Start()
@@ -498,12 +495,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.PortScanner_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/PowerShellHostViewModel.cs b/Source/NETworkManager/ViewModels/PowerShellHostViewModel.cs
index 428fc68383..80d632bab7 100644
--- a/Source/NETworkManager/ViewModels/PowerShellHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PowerShellHostViewModel.cs
@@ -1,6 +1,5 @@
using Dragablz;
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -699,7 +698,7 @@ private Task Connect(string host = null)
ConfigurationManager.OnDialogOpen();
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private void ConnectProfile()
diff --git a/Source/NETworkManager/ViewModels/PowerShellSettingsViewModel.cs b/Source/NETworkManager/ViewModels/PowerShellSettingsViewModel.cs
index 27ebd5ae56..ee1d3a6deb 100644
--- a/Source/NETworkManager/ViewModels/PowerShellSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PowerShellSettingsViewModel.cs
@@ -6,7 +6,6 @@
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.PowerShell;
using NETworkManager.Settings;
@@ -17,9 +16,6 @@ namespace NETworkManager.ViewModels;
public class PowerShellSettingsViewModel : ViewModelBase
{
#region Variables
-
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly bool _isLoading;
private string _applicationFilePath;
@@ -130,12 +126,10 @@ public bool IsConfigured
#region Contructor, load settings
- public PowerShellSettingsViewModel(IDialogCoordinator instance)
+ public PowerShellSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
LoadSettings();
_isLoading = false;
@@ -194,12 +188,7 @@ private async Task Configure()
}
catch (Exception ex)
{
- var settings = AppearanceManager.MetroDialog;
-
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(System.Windows.Application.Current.MainWindow, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
diff --git a/Source/NETworkManager/ViewModels/PuTTYHostViewModel.cs b/Source/NETworkManager/ViewModels/PuTTYHostViewModel.cs
index 26f939c0c5..a3a8313eb7 100644
--- a/Source/NETworkManager/ViewModels/PuTTYHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PuTTYHostViewModel.cs
@@ -1,6 +1,5 @@
using Dragablz;
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -33,8 +32,6 @@ public class PuTTYHostViewModel : ViewModelBase, IProfileManager
private static readonly ILog Log = LogManager.GetLogger(typeof(PuTTYHostViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly DispatcherTimer _searchDispatcherTimer = new();
private bool _searchDisabled;
@@ -313,12 +310,10 @@ public bool ProfileContextMenuIsOpen
#region Constructor, load settings
- public PuTTYHostViewModel(IDialogCoordinator instance)
+ public PuTTYHostViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
// Check if PuTTY executable is configured
CheckExecutable();
@@ -646,7 +641,7 @@ private Task Connect(string host = null)
ConfigurationManager.OnDialogOpen();
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private void ConnectProfile()
diff --git a/Source/NETworkManager/ViewModels/PuTTYSettingsViewModel.cs b/Source/NETworkManager/ViewModels/PuTTYSettingsViewModel.cs
index ec9498dcc4..78ced6a3e9 100644
--- a/Source/NETworkManager/ViewModels/PuTTYSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/PuTTYSettingsViewModel.cs
@@ -6,7 +6,6 @@
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.PuTTY;
using NETworkManager.Settings;
@@ -18,9 +17,6 @@ namespace NETworkManager.ViewModels;
public class PuTTYSettingsViewModel : ViewModelBase
{
#region Variables
-
- private readonly IDialogCoordinator _dialogCoordinator;
-
public bool IsPortable => ConfigurationManager.Current.IsPortable;
public string PortableLogPath => PuTTY.PortableLogPath;
@@ -393,12 +389,10 @@ public int RloginPort
#region Contructor, load settings
- public PuTTYSettingsViewModel(IDialogCoordinator instance)
+ public PuTTYSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
LoadSettings();
_isLoading = false;
@@ -505,12 +499,7 @@ private async Task Configure()
}
catch (Exception ex)
{
- var settings = AppearanceManager.MetroDialog;
-
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(System.Windows.Application.Current.MainWindow, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
diff --git a/Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs b/Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs
index 686350506b..5a9a5b9612 100644
--- a/Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/RemoteDesktopHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -28,8 +27,6 @@ public class RemoteDesktopHostViewModel : ViewModelBase, IProfileManager
{
#region Variables
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly DispatcherTimer _searchDispatcherTimer = new();
private bool _searchDisabled;
@@ -261,12 +258,10 @@ public GridLength ProfileWidth
#region Constructor, load settings
- public RemoteDesktopHostViewModel(IDialogCoordinator instance)
+ public RemoteDesktopHostViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
InterTabClient = new DragablzInterTabClient(ApplicationName.RemoteDesktop);
InterTabPartition = nameof(ApplicationName.RemoteDesktop);
@@ -378,8 +373,8 @@ private async void SendCtrlAltDelAction(object view)
{
ConfigurationManager.OnDialogOpen();
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- $"{Strings.CouldNotSendKeystroke}\n\nMessage:\n{ex.Message}");
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ $"{Strings.CouldNotSendKeystroke}\n\nMessage:\n{ex.Message}", ChildWindowIcon.Error);
ConfigurationManager.OnDialogClose();
}
@@ -586,7 +581,7 @@ private Task Connect(string host = null)
ConfigurationManager.OnDialogOpen();
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
// Connect via Profile
@@ -648,7 +643,7 @@ private Task ConnectProfileAs()
ConfigurationManager.OnDialogOpen();
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private void Connect(RemoteDesktopSessionInfo sessionInfo, string header = null)
diff --git a/Source/NETworkManager/ViewModels/SNMPHostViewModel.cs b/Source/NETworkManager/ViewModels/SNMPHostViewModel.cs
index 964b591278..972d7bfaa0 100644
--- a/Source/NETworkManager/ViewModels/SNMPHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNMPHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
diff --git a/Source/NETworkManager/ViewModels/SNMPOIDProfilesViewModel.cs b/Source/NETworkManager/ViewModels/SNMPOIDProfilesViewModel.cs
index a5dd9b983b..8eb692521d 100644
--- a/Source/NETworkManager/ViewModels/SNMPOIDProfilesViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNMPOIDProfilesViewModel.cs
@@ -1,5 +1,6 @@
using System;
using System.ComponentModel;
+using System.Linq;
using System.Windows.Data;
using System.Windows.Input;
using NETworkManager.Models.Network;
@@ -37,6 +38,8 @@ public SNMPOIDProfilesViewModel(Action okCommand,
return info.Name.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1 ||
info.OID.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1;
};
+
+ SelectedOIDProfile = OIDProfiles.Cast().FirstOrDefault();
}
public ICommand OKCommand { get; }
@@ -54,6 +57,8 @@ public string Search
OIDProfiles.Refresh();
+ SelectedOIDProfile = OIDProfiles.Cast().FirstOrDefault();
+
OnPropertyChanged();
}
}
diff --git a/Source/NETworkManager/ViewModels/SNMPSettingsViewModel.cs b/Source/NETworkManager/ViewModels/SNMPSettingsViewModel.cs
index 70b7c4d1f1..124ebcbbcb 100644
--- a/Source/NETworkManager/ViewModels/SNMPSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNMPSettingsViewModel.cs
@@ -1,5 +1,4 @@
using Lextm.SharpSnmpLib.Messaging;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Network;
@@ -23,8 +22,6 @@ public class SNMPSettingsViewModel : ViewModelBase
private readonly bool _isLoading;
- private readonly IDialogCoordinator _dialogCoordinator;
-
public ICollectionView OIDProfiles { get; }
private SNMPOIDProfileInfo _selectedOIDProfile = new();
@@ -102,16 +99,16 @@ public int Port
#region Contructor, load settings
- public SNMPSettingsViewModel(IDialogCoordinator instance)
+ public SNMPSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
OIDProfiles = CollectionViewSource.GetDefaultView(SettingsManager.Current.SNMP_OidProfiles);
OIDProfiles.SortDescriptions.Add(new SortDescription(nameof(SNMPOIDProfileInfo.Name),
ListSortDirection.Ascending));
+ SelectedOIDProfile = OIDProfiles.Cast().FirstOrDefault();
+
LoadSettings();
_isLoading = false;
@@ -156,54 +153,63 @@ private void DeleteOIDProfileAction()
private async Task AddOIDProfile()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.AddOIDProfile
- };
+ var childWindow = new SNMPOIDProfileChildWindow();
- var viewModel = new SNMPOIDProfileViewModel(async instance =>
+ var childWindowViewModel = new SNMPOIDProfileViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+
+ SettingsManager.Current.SNMP_OidProfiles.Add(new SNMPOIDProfileInfo(
+ instance.Name,
+ instance.OID,
+ instance.Mode)
+ );
+ }, async _ =>
+ {
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
- SettingsManager.Current.SNMP_OidProfiles.Add(new SNMPOIDProfileInfo(instance.Name, instance.OID,
- instance.Mode));
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(this, customDialog); });
+ childWindow.Title = Strings.AddOIDProfile;
- customDialog.Content = new SNMPOIDProfileDialog
- {
- DataContext = viewModel
- };
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
public async Task EditOIDProfile()
{
- var customDialog = new CustomDialog
- {
- Title = Strings.EditOIDProfile
- };
+ var childWindow = new SNMPOIDProfileChildWindow();
- var viewModel = new SNMPOIDProfileViewModel(async instance =>
+ var childWindowViewModel = new SNMPOIDProfileViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
SettingsManager.Current.SNMP_OidProfiles.Remove(SelectedOIDProfile);
SettingsManager.Current.SNMP_OidProfiles.Add(new SNMPOIDProfileInfo(instance.Name, instance.OID,
instance.Mode));
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(this, customDialog); }, true, SelectedOIDProfile);
-
- customDialog.Content = new SNMPOIDProfileDialog
+ }, async _ =>
{
- DataContext = viewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ }, true, SelectedOIDProfile);
+
+ childWindow.Title = Strings.EditOIDProfile;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private async Task DeleteOIDProfile()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteOIDProfile,
Strings.DeleteOIDProfileMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/SNMPViewModel.cs b/Source/NETworkManager/ViewModels/SNMPViewModel.cs
index d4e1c2b442..b255d60b0e 100644
--- a/Source/NETworkManager/ViewModels/SNMPViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNMPViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization;
@@ -31,12 +30,10 @@ public class SNMPViewModel : ViewModelBase
{
#region Contructor, load settings
- public SNMPViewModel(IDialogCoordinator instance, Guid tabId, SNMPSessionInfo sessionInfo)
+ public SNMPViewModel(Guid tabId, SNMPSessionInfo sessionInfo)
{
_isLoading = true;
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.SNMPTabCount++;
_tabId = tabId;
@@ -57,11 +54,11 @@ public SNMPViewModel(IDialogCoordinator instance, Guid tabId, SNMPSessionInfo se
Oid = sessionInfo?.OID;
// Modes
- Modes = new List { SNMPMode.Get, SNMPMode.Walk, SNMPMode.Set };
+ Modes = [SNMPMode.Get, SNMPMode.Walk, SNMPMode.Set];
Mode = Modes.FirstOrDefault(x => x == sessionInfo?.Mode);
// Versions (v1, v2c, v3)
- Versions = Enum.GetValues(typeof(SNMPVersion)).Cast().ToList();
+ Versions = Enum.GetValues().Cast().ToList();
Version = Versions.FirstOrDefault(x => x == sessionInfo?.Version);
// Community
@@ -69,8 +66,7 @@ public SNMPViewModel(IDialogCoordinator instance, Guid tabId, SNMPSessionInfo se
Community = sessionInfo?.Community;
// Security
- Securities = new List
- { SNMPV3Security.NoAuthNoPriv, SNMPV3Security.AuthNoPriv, SNMPV3Security.AuthPriv };
+ Securities = [SNMPV3Security.NoAuthNoPriv, SNMPV3Security.AuthNoPriv, SNMPV3Security.AuthPriv];
Security = Securities.FirstOrDefault(x => x == sessionInfo?.Security);
// Username
@@ -78,15 +74,14 @@ public SNMPViewModel(IDialogCoordinator instance, Guid tabId, SNMPSessionInfo se
Username = sessionInfo?.Username;
// Auth
- AuthenticationProviders = Enum.GetValues(typeof(SNMPV3AuthenticationProvider))
- .Cast().ToList();
+ AuthenticationProviders = [.. Enum.GetValues().Cast()];
AuthenticationProvider = AuthenticationProviders.FirstOrDefault(x => x == sessionInfo?.AuthenticationProvider);
if (Version == SNMPVersion.V3 && Security != SNMPV3Security.NoAuthNoPriv)
Auth = sessionInfo?.Auth;
// Priv
- PrivacyProviders = Enum.GetValues(typeof(SNMPV3PrivacyProvider)).Cast().ToList();
+ PrivacyProviders = [.. Enum.GetValues().Cast()];
PrivacyProvider = PrivacyProviders.FirstOrDefault(x => x == sessionInfo?.PrivacyProvider);
if (Version == SNMPVersion.V3 && Security == SNMPV3Security.AuthPriv)
@@ -100,8 +95,6 @@ public SNMPViewModel(IDialogCoordinator instance, Guid tabId, SNMPSessionInfo se
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(SNMPViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private CancellationTokenSource _cancellationTokenSource;
private readonly Guid _tabId;
@@ -656,25 +649,31 @@ private async Task OpenOIDProfileSelection()
{
var window = Application.Current.Windows.OfType().FirstOrDefault(x => x.IsActive);
- var customDialog = new CustomDialog
- {
- Title = Strings.SelectOIDProfile
- };
+ var childWindow = new SNMPOIDProfilesChildWindow(window);
- var viewModel = new SNMPOIDProfilesViewModel(async instance =>
+ var childWindowViewModel = new SNMPOIDProfilesViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(window, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
- Mode = instance.SelectedOIDProfile.Mode;
- Oid = instance.SelectedOIDProfile.OID;
- }, async _ => { await _dialogCoordinator.HideMetroDialogAsync(window, customDialog); });
+ if (instance.SelectedOIDProfile == null)
+ return;
- customDialog.Content = new SNMPOIDProfilesDialog
+ Mode = instance.SelectedOIDProfile.Mode;
+ Oid = instance.SelectedOIDProfile?.OID;
+ }, async _ =>
{
- DataContext = viewModel
- };
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ });
+
+ childWindow.Title = Strings.SelectOIDProfile;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
- await _dialogCoordinator.ShowMetroDialogAsync(window, customDialog);
+ await window.ShowChildWindowAsync(childWindow);
}
private void AddHostToHistory(string host)
@@ -727,12 +726,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.SNMP_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/SNTPLookupSettingsViewModel.cs b/Source/NETworkManager/ViewModels/SNTPLookupSettingsViewModel.cs
index 70eae4e110..305dc0e105 100644
--- a/Source/NETworkManager/ViewModels/SNTPLookupSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNTPLookupSettingsViewModel.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using MahApps.Metro.SimpleChildWindow;
+using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Network;
using NETworkManager.Settings;
@@ -24,8 +23,6 @@ public class SNTPLookupSettingsViewModel : ViewModelBase
private readonly ServerConnectionInfo _profileDialogDefaultValues =
new("time.example.com", 123, TransportProtocol.Tcp);
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly ICollectionView _sntpServers;
public ICollectionView SNTPServers
@@ -81,16 +78,16 @@ public int Timeout
#region Constructor, load settings
- public SNTPLookupSettingsViewModel(IDialogCoordinator instance)
+ public SNTPLookupSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
SNTPServers = CollectionViewSource.GetDefaultView(SettingsManager.Current.SNTPLookup_SNTPServers);
SNTPServers.SortDescriptions.Add(new SortDescription(nameof(ServerConnectionInfoProfile.Name),
ListSortDirection.Ascending));
+ SelectedSNTPServer = SNTPServers.Cast().FirstOrDefault();
+
LoadSettings();
_isLoading = false;
@@ -160,7 +157,7 @@ private async Task AddServer()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
public async Task EditServer()
@@ -189,12 +186,12 @@ public async Task EditServer()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private async Task DeleteServer()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteSNTPServer,
Strings.DeleteSNTPServerMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/SNTPLookupViewModel.cs b/Source/NETworkManager/ViewModels/SNTPLookupViewModel.cs
index 95da075989..dd0b8de56c 100644
--- a/Source/NETworkManager/ViewModels/SNTPLookupViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SNTPLookupViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -27,8 +26,6 @@ public class SNTPLookupViewModel : ViewModelBase
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(SNTPLookupViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly Guid _tabId;
private readonly bool _isLoading;
private bool _closed;
@@ -148,11 +145,10 @@ private set
#region Contructor, load settings
- public SNTPLookupViewModel(IDialogCoordinator instance, Guid tabId)
+ public SNTPLookupViewModel(Guid tabId)
{
_isLoading = true;
- _dialogCoordinator = instance;
ConfigurationManager.Current.SNTPLookupTabCount++;
_tabId = tabId;
@@ -255,12 +251,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.SNTPLookup_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/SettingsAutostartViewModel.cs b/Source/NETworkManager/ViewModels/SettingsAutostartViewModel.cs
index 4b17303ac0..55dc1a5b1d 100644
--- a/Source/NETworkManager/ViewModels/SettingsAutostartViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SettingsAutostartViewModel.cs
@@ -1,8 +1,9 @@
using System;
using System.Threading.Tasks;
-using MahApps.Metro.Controls.Dialogs;
+using System.Windows;
using NETworkManager.Localization.Resources;
using NETworkManager.Settings;
+using NETworkManager.Utilities;
namespace NETworkManager.ViewModels;
@@ -10,12 +11,10 @@ public class SettingsAutostartViewModel : ViewModelBase
{
#region Constructor
- public SettingsAutostartViewModel(IDialogCoordinator instance)
+ public SettingsAutostartViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
LoadSettings();
_isLoading = false;
@@ -51,8 +50,8 @@ private async Task EnableDisableAutostart(bool enable)
}
catch (Exception ex)
{
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ ex.Message, ChildWindowIcon.Error);
}
ConfiguringAutostart = false;
@@ -61,9 +60,6 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
#endregion
#region Variables
-
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly bool _isLoading;
private bool _startWithWindows;
diff --git a/Source/NETworkManager/ViewModels/SettingsProfilesViewModel.cs b/Source/NETworkManager/ViewModels/SettingsProfilesViewModel.cs
index f6bd5260f7..fd42c76821 100644
--- a/Source/NETworkManager/ViewModels/SettingsProfilesViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SettingsProfilesViewModel.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using MahApps.Metro.SimpleChildWindow;
+using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Profiles;
using NETworkManager.Settings;
@@ -21,8 +20,6 @@ public class SettingsProfilesViewModel : ViewModelBase
{
#region Variables
- private readonly IDialogCoordinator _dialogCoordinator;
-
public Action CloseAction { get; set; }
private string _location;
@@ -74,10 +71,8 @@ public ProfileFileInfo SelectedProfileFile
#region Constructor, LoadSettings
- public SettingsProfilesViewModel(IDialogCoordinator instance)
+ public SettingsProfilesViewModel()
{
- _dialogCoordinator = instance;
-
ProfileFiles = new CollectionViewSource { Source = ProfileManager.ProfileFiles }.View;
ProfileFiles.SortDescriptions.Add(
new SortDescription(nameof(ProfileFileInfo.Name), ListSortDirection.Ascending));
@@ -131,7 +126,7 @@ private async Task AddProfileFileAction()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
// Re-select the profile file
if (string.IsNullOrEmpty(profileName))
@@ -141,7 +136,7 @@ private async Task AddProfileFileAction()
.FirstOrDefault(p => p.Name.Equals(profileName, StringComparison.OrdinalIgnoreCase));
// Ask the user if they want to enable encryption for the new profile file
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.EnableEncryptionQuestion,
Strings.EnableEncryptionForProfileFileMessage);
@@ -177,7 +172,7 @@ private async Task EditProfileFileAction()
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
// Re-select the profile file
if (string.IsNullOrEmpty(profileName))
@@ -197,7 +192,7 @@ private bool DeleteProfileFile_CanExecute(object obj)
private async Task DeleteProfileFileAction()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteProfileFile,
string.Format(Strings.DeleteProfileFileXMessage, SelectedProfileFile.Name),
ChildWindowIcon.Info,
@@ -217,7 +212,7 @@ private async Task DeleteProfileFileAction()
private async Task EnableEncryptionAction()
{
// Show encryption disclaimer
- if (!await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ if (!await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.Disclaimer,
Strings.ProfileEncryptionDisclaimer))
return;
@@ -237,7 +232,7 @@ private async Task EnableEncryptionAction()
}
catch (Exception ex)
{
- await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow,
Strings.EncryptionError,
$"{Strings.EncryptionErrorMessage}\n\n{ex.Message}",
ChildWindowIcon.Error).ConfigureAwait(false);
@@ -254,7 +249,7 @@ await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
// Re-select the profile file
if (string.IsNullOrEmpty(profileFile))
@@ -283,14 +278,14 @@ private async Task ChangeMasterPasswordAction()
}
catch (CryptographicException)
{
- await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow,
Strings.WrongPassword,
Strings.WrongPasswordDecryptionFailedMessage,
ChildWindowIcon.Error).ConfigureAwait(false);
}
catch (Exception ex)
{
- await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow,
Strings.DecryptionError,
$"{Strings.DecryptionErrorMessage}\n\n{ex.Message}",
ChildWindowIcon.Error).ConfigureAwait(false);
@@ -307,7 +302,7 @@ await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
// Re-select the profile file
if (string.IsNullOrEmpty(profileName))
@@ -336,14 +331,14 @@ private async Task DisableEncryptionAction()
}
catch (CryptographicException)
{
- await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow,
Strings.WrongPassword,
Strings.WrongPasswordDecryptionFailedMessage,
ChildWindowIcon.Error).ConfigureAwait(false);
}
catch (Exception ex)
{
- await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow,
Strings.DecryptionError,
$"{Strings.DecryptionErrorMessage}\n\n{ex.Message}",
ChildWindowIcon.Error).ConfigureAwait(false);
@@ -361,7 +356,7 @@ await DialogHelper.ShowOKMessageAsync(Application.Current.MainWindow,
ConfigurationManager.Current.IsChildWindowOpen = true;
- await (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ await Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
// Re-select the profile file
if (string.IsNullOrEmpty(profileName))
diff --git a/Source/NETworkManager/ViewModels/SettingsSettingsViewModel.cs b/Source/NETworkManager/ViewModels/SettingsSettingsViewModel.cs
index d004a0d3bb..399ffb1e02 100644
--- a/Source/NETworkManager/ViewModels/SettingsSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SettingsSettingsViewModel.cs
@@ -68,7 +68,7 @@ private void ResetSettingsAction()
private async Task ResetSettings()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.ResetSettingsQuestion,
Strings.SettingsAreResetAndApplicationWillBeRestartedMessage,
ChildWindowIcon.Question,
diff --git a/Source/NETworkManager/ViewModels/SubnetCalculatorSubnettingViewModel.cs b/Source/NETworkManager/ViewModels/SubnetCalculatorSubnettingViewModel.cs
index 760c91ac70..b1845036f0 100644
--- a/Source/NETworkManager/ViewModels/SubnetCalculatorSubnettingViewModel.cs
+++ b/Source/NETworkManager/ViewModels/SubnetCalculatorSubnettingViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization.Resources;
using NETworkManager.Models.Export;
@@ -28,10 +27,8 @@ public class SubnetCalculatorSubnettingViewModel : ViewModelBase
{
#region Constructor, load settings
- public SubnetCalculatorSubnettingViewModel(IDialogCoordinator instance)
+ public SubnetCalculatorSubnettingViewModel()
{
- _dialogCoordinator = instance;
-
// Set collection view
SubnetHistoryView =
CollectionViewSource.GetDefaultView(SettingsManager.Current.SubnetCalculator_Subnetting_SubnetHistory);
@@ -48,8 +45,6 @@ public SubnetCalculatorSubnettingViewModel(IDialogCoordinator instance)
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(SubnetCalculatorSubnettingViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
-
private string _subnet;
public string Subnet
@@ -203,12 +198,9 @@ private Task ExportAction()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.SubnetCalculator_Subnetting_ExportFileType = instance.FileType;
@@ -228,7 +220,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
#endregion
@@ -257,16 +249,7 @@ private async Task Calculate()
if (65535 < Math.Pow(2, baseCidr - ipNetwork.Cidr) / Math.Pow(2, baseCidr - newCidr))
{
- var settings = AppearanceManager.MetroDialog;
-
- settings.AffirmativeButtonText = Strings.Continue;
- settings.NegativeButtonText = Strings.Cancel;
-
- settings.DefaultButtonFocus = MessageDialogResult.Affirmative;
-
- if (await _dialogCoordinator.ShowMessageAsync(this, Strings.AreYouSure,
- Strings.TheProcessCanTakeUpSomeTimeAndResources,
- MessageDialogStyle.AffirmativeAndNegative, settings) != MessageDialogResult.Affirmative)
+ if (!await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow, Strings.AreYouSure, Strings.TheProcessCanTakeUpSomeTimeAndResources))
{
IsRunning = false;
diff --git a/Source/NETworkManager/ViewModels/TigerVNCHostViewModel.cs b/Source/NETworkManager/ViewModels/TigerVNCHostViewModel.cs
index 35361e7417..5f348ad5bb 100644
--- a/Source/NETworkManager/ViewModels/TigerVNCHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/TigerVNCHostViewModel.cs
@@ -1,5 +1,5 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
+using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
@@ -28,8 +28,6 @@ namespace NETworkManager.ViewModels;
public class TigerVNCHostViewModel : ViewModelBase, IProfileManager
{
#region Variables
-
- private readonly IDialogCoordinator _dialogCoordinator;
private readonly DispatcherTimer _searchDispatcherTimer = new();
private bool _searchDisabled;
@@ -276,12 +274,10 @@ public GridLength ProfileWidth
#region Constructor, load settings
- public TigerVNCHostViewModel(IDialogCoordinator instance)
+ public TigerVNCHostViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
CheckSettings();
InterTabClient = new DragablzInterTabClient(ApplicationName.TigerVNC);
@@ -486,16 +482,15 @@ private void CheckSettings()
File.Exists(SettingsManager.Current.TigerVNC_ApplicationFilePath);
}
- private async Task Connect(string host = null)
+ private Task Connect(string host = null)
{
- var customDialog = new CustomDialog
- {
- Title = Strings.Connect
- };
+ var childWindow = new TigerVNCConnectChildWindow();
- var connectViewModel = new TigerVNCConnectViewModel(async instance =>
+ var childWindowViewModel = new TigerVNCConnectViewModel(async instance =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+
ConfigurationManager.OnDialogClose();
// Create profile info
@@ -515,17 +510,22 @@ private async Task Connect(string host = null)
Connect(sessionInfo);
}, async _ =>
{
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+
ConfigurationManager.OnDialogClose();
}, host);
- customDialog.Content = new TigerVNCConnectDialog
- {
- DataContext = connectViewModel
- };
+
+ childWindow.Title = Strings.Connect;
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
ConfigurationManager.OnDialogOpen();
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private void ConnectProfile()
diff --git a/Source/NETworkManager/ViewModels/TigerVNCSettingsViewModel.cs b/Source/NETworkManager/ViewModels/TigerVNCSettingsViewModel.cs
index e56be7b2d2..b2592bcc9b 100644
--- a/Source/NETworkManager/ViewModels/TigerVNCSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/TigerVNCSettingsViewModel.cs
@@ -4,7 +4,6 @@
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Settings;
using NETworkManager.Utilities;
@@ -15,8 +14,6 @@ public class TigerVNCSettingsViewModel : ViewModelBase
{
#region Variables
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly bool _isLoading;
private string _applicationFilePath;
@@ -76,12 +73,10 @@ public int Port
#region Contructor, load settings
- public TigerVNCSettingsViewModel(IDialogCoordinator instance)
+ public TigerVNCSettingsViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
LoadSettings();
_isLoading = false;
@@ -130,12 +125,7 @@ private async Task Configure()
}
catch (Exception ex)
{
- var settings = AppearanceManager.MetroDialog;
-
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error, ex.Message,
- MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(System.Windows.Application.Current.MainWindow, Strings.Error, ex.Message, ChildWindowIcon.Error);
}
}
diff --git a/Source/NETworkManager/ViewModels/TracerouteHostViewModel.cs b/Source/NETworkManager/ViewModels/TracerouteHostViewModel.cs
index eb083d0dff..cd29d858ed 100644
--- a/Source/NETworkManager/ViewModels/TracerouteHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/TracerouteHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
diff --git a/Source/NETworkManager/ViewModels/TracerouteViewModel.cs b/Source/NETworkManager/ViewModels/TracerouteViewModel.cs
index b0f4a1f0b7..c6801843c6 100644
--- a/Source/NETworkManager/ViewModels/TracerouteViewModel.cs
+++ b/Source/NETworkManager/ViewModels/TracerouteViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -34,7 +33,6 @@ public class TracerouteViewModel : ViewModelBase
#region Variables
private static readonly ILog Log = LogManager.GetLogger(typeof(TracerouteViewModel));
- private readonly IDialogCoordinator _dialogCoordinator;
private CancellationTokenSource _cancellationTokenSource;
private readonly Guid _tabId;
@@ -203,13 +201,10 @@ private set
///
/// Initializes a new instance of the class.
///
- /// The dialog coordinator instance.
/// The unique identifier for the tab.
/// The initial host to trace.
- public TracerouteViewModel(IDialogCoordinator instance, Guid tabId, string host)
+ public TracerouteViewModel(Guid tabId, string host)
{
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.TracerouteTabCount++;
_tabId = tabId;
@@ -417,12 +412,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Traceroute_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/WakeOnLANViewModel.cs b/Source/NETworkManager/ViewModels/WakeOnLANViewModel.cs
index 33fb857215..e450f3aee9 100644
--- a/Source/NETworkManager/ViewModels/WakeOnLANViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WakeOnLANViewModel.cs
@@ -1,5 +1,4 @@
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
using NETworkManager.Models.Network;
diff --git a/Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs b/Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs
index 40296f2522..9eecebcbf7 100644
--- a/Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WebConsoleHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using Microsoft.Web.WebView2.Core;
using NETworkManager.Controls;
@@ -29,8 +28,6 @@ public class WebConsoleHostViewModel : ViewModelBase, IProfileManager
{
#region Variables
- private readonly IDialogCoordinator _dialogCoordinator;
-
private readonly DispatcherTimer _searchDispatcherTimer = new();
private bool _searchDisabled;
@@ -283,12 +280,10 @@ public GridLength ProfileWidth
#region Constructor, load settings
- public WebConsoleHostViewModel(IDialogCoordinator instance)
+ public WebConsoleHostViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
try
{
CoreWebView2Environment.GetAvailableBrowserVersionString();
@@ -525,7 +520,7 @@ private Task Connect()
ConfigurationManager.OnDialogOpen();
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private void ConnectProfile()
diff --git a/Source/NETworkManager/ViewModels/WebConsoleSettingsViewModel.cs b/Source/NETworkManager/ViewModels/WebConsoleSettingsViewModel.cs
index fcde9483e5..b5f3b9230b 100644
--- a/Source/NETworkManager/ViewModels/WebConsoleSettingsViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WebConsoleSettingsViewModel.cs
@@ -108,7 +108,7 @@ private void DeleteBrowsingDataAction()
private async Task DeleteBrowsingData()
{
- var result = await DialogHelper.ShowOKCancelMessageAsync(Application.Current.MainWindow,
+ var result = await DialogHelper.ShowConfirmationMessageAsync(Application.Current.MainWindow,
Strings.DeleteBrowsingData,
Strings.DeleteBrowsingDataMessage,
ChildWindowIcon.Info,
diff --git a/Source/NETworkManager/ViewModels/WhoisHostViewModel.cs b/Source/NETworkManager/ViewModels/WhoisHostViewModel.cs
index 1dd3af13bc..d061001019 100644
--- a/Source/NETworkManager/ViewModels/WhoisHostViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WhoisHostViewModel.cs
@@ -1,5 +1,4 @@
using Dragablz;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
using NETworkManager.Models;
diff --git a/Source/NETworkManager/ViewModels/WhoisViewModel.cs b/Source/NETworkManager/ViewModels/WhoisViewModel.cs
index 0a039b36bc..8740db96dc 100644
--- a/Source/NETworkManager/ViewModels/WhoisViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WhoisViewModel.cs
@@ -1,6 +1,5 @@
using log4net;
using MahApps.Metro.Controls;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Controls;
using NETworkManager.Localization.Resources;
@@ -22,9 +21,7 @@ namespace NETworkManager.ViewModels;
public class WhoisViewModel : ViewModelBase
{
#region Variables
- private static readonly ILog Log = LogManager.GetLogger(typeof(IPScannerViewModel));
-
- private readonly IDialogCoordinator _dialogCoordinator;
+ private static readonly ILog Log = LogManager.GetLogger(typeof(WhoisViewModel));
private readonly Guid _tabId;
private bool _firstLoad = true;
@@ -126,10 +123,8 @@ private set
#region Contructor, load settings
- public WhoisViewModel(IDialogCoordinator instance, Guid tabId, string domain)
+ public WhoisViewModel(Guid tabId, string domain)
{
- _dialogCoordinator = instance;
-
ConfigurationManager.Current.WhoisTabCount++;
_tabId = tabId;
@@ -265,12 +260,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(window, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(window, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.Whois_ExportFileType = instance.FileType;
diff --git a/Source/NETworkManager/ViewModels/WiFiViewModel.cs b/Source/NETworkManager/ViewModels/WiFiViewModel.cs
index b96a563fe5..f1c80913f4 100644
--- a/Source/NETworkManager/ViewModels/WiFiViewModel.cs
+++ b/Source/NETworkManager/ViewModels/WiFiViewModel.cs
@@ -1,7 +1,6 @@
using LiveCharts;
using LiveCharts.Wpf;
using log4net;
-using MahApps.Metro.Controls.Dialogs;
using MahApps.Metro.SimpleChildWindow;
using NETworkManager.Localization;
using NETworkManager.Localization.Resources;
@@ -31,9 +30,6 @@ namespace NETworkManager.ViewModels;
public class WiFiViewModel : ViewModelBase
{
#region Variables
-
- private readonly IDialogCoordinator _dialogCoordinator;
-
private static readonly ILog Log = LogManager.GetLogger(typeof(WiFiViewModel));
private readonly bool _isLoading;
@@ -440,12 +436,10 @@ private set
#region Constructor, load settings
- public WiFiViewModel(IDialogCoordinator instance)
+ public WiFiViewModel()
{
_isLoading = true;
- _dialogCoordinator = instance;
-
// Check if Microsoft.Windows.SDK.Contracts is available
SdkContractAvailable = ApiInformation.IsTypePresent("Windows.Devices.WiFi.WiFiAdapter");
@@ -792,124 +786,129 @@ private LineSeries GetSeriesCollection(WiFiNetworkInfo network)
};
}
- private async void Connect()
+ private Task Connect()
{
var selectedAdapter = SelectedAdapter;
var selectedNetwork = SelectedNetwork;
var connectMode = WiFi.GetConnectMode(selectedNetwork.AvailableNetwork);
- var customDialog = new CustomDialog
+ var childWindow = new WiFiConnectChildWindow();
+
+ var childWindowViewModel = new WiFiConnectViewModel(async instance =>
{
- Title = selectedNetwork.IsHidden
- ? Strings.HiddenNetwork
- : string.Format(Strings.ConnectToXXX, selectedNetwork.AvailableNetwork.Ssid)
- };
+ // Connect Open/PSK/EAP
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+
+ var ssid = selectedNetwork.IsHidden ? instance.Ssid : selectedNetwork.AvailableNetwork.Ssid;
+
+ // Show status message
+ IsConnecting = true;
+ ConnectionStatusMessage = string.Format(Strings.ConnectingToXXX, ssid);
+ IsConnectionStatusMessageDisplayed = true;
+
+ // Connect to the network
+ var reconnectionKind = instance.ConnectAutomatically
+ ? WiFiReconnectionKind.Automatic
+ : WiFiReconnectionKind.Manual;
+
+ PasswordCredential credential = new();
- var connectViewModel = new WiFiConnectViewModel(async instance =>
+ switch (instance.ConnectMode)
{
- // Connect Open/PSK/EAP
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
+ case WiFiConnectMode.Psk:
+ credential.Password = SecureStringHelper.ConvertToString(instance.PreSharedKey);
+ break;
+ case WiFiConnectMode.Eap:
+ credential.UserName = instance.Username;
- var ssid = selectedNetwork.IsHidden ? instance.Ssid : selectedNetwork.AvailableNetwork.Ssid;
+ if (!string.IsNullOrEmpty(instance.Domain))
+ credential.Resource = instance.Domain;
- // Show status message
- IsConnecting = true;
- ConnectionStatusMessage = string.Format(Strings.ConnectingToXXX, ssid);
- IsConnectionStatusMessageDisplayed = true;
+ credential.Password = SecureStringHelper.ConvertToString(instance.Password);
+ break;
+ }
- // Connect to the network
- var reconnectionKind = instance.ConnectAutomatically
- ? WiFiReconnectionKind.Automatic
- : WiFiReconnectionKind.Manual;
+ WiFiConnectionStatus connectionResult;
- PasswordCredential credential = new();
+ if (selectedNetwork.IsHidden)
+ connectionResult = await WiFi.ConnectAsync(instance.Options.AdapterInfo.WiFiAdapter,
+ instance.Options.NetworkInfo.AvailableNetwork, reconnectionKind, credential, instance.Ssid);
+ else
+ connectionResult = await WiFi.ConnectAsync(instance.Options.AdapterInfo.WiFiAdapter,
+ instance.Options.NetworkInfo.AvailableNetwork, reconnectionKind, credential);
- switch (instance.ConnectMode)
- {
- case WiFiConnectMode.Psk:
- credential.Password = SecureStringHelper.ConvertToString(instance.PreSharedKey);
- break;
- case WiFiConnectMode.Eap:
- credential.UserName = instance.Username;
+ // Done connecting
+ IsConnecting = false;
- if (!string.IsNullOrEmpty(instance.Domain))
- credential.Resource = instance.Domain;
+ // Get result
+ ConnectionStatusMessage = connectionResult == WiFiConnectionStatus.Success
+ ? string.Format(Strings.SuccessfullyConnectedToXXX, ssid)
+ : string.Format(Strings.CouldNotConnectToXXXReasonXXX, ssid,
+ ResourceTranslator.Translate(ResourceIdentifier.WiFiConnectionStatus, connectionResult));
- credential.Password = SecureStringHelper.ConvertToString(instance.Password);
- break;
- }
+ // Hide message automatically
+ _hideConnectionStatusMessageTimer.Start();
+
+ // Update the Wi-Fi networks.
+ // Wait because an error may occur if a refresh is done directly after connecting.
+ await ScanAsync(SelectedAdapter, true, 5000);
+ }, async instance =>
+ {
+ // Connect WPS
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
- WiFiConnectionStatus connectionResult;
+ var ssid = selectedNetwork.IsHidden ? instance.Ssid : selectedNetwork.AvailableNetwork.Ssid;
- if (selectedNetwork.IsHidden)
- connectionResult = await WiFi.ConnectAsync(instance.Options.AdapterInfo.WiFiAdapter,
- instance.Options.NetworkInfo.AvailableNetwork, reconnectionKind, credential, instance.Ssid);
- else
- connectionResult = await WiFi.ConnectAsync(instance.Options.AdapterInfo.WiFiAdapter,
- instance.Options.NetworkInfo.AvailableNetwork, reconnectionKind, credential);
+ // Show status message
+ IsConnecting = true;
+ ConnectionStatusMessage = string.Format(Strings.ConnectingToXXX, ssid);
+ IsConnectionStatusMessageDisplayed = true;
+
+ // Connect to the network
+ var reconnectionKind = instance.ConnectAutomatically
+ ? WiFiReconnectionKind.Automatic
+ : WiFiReconnectionKind.Manual;
+
+ var connectionResult = await WiFi.ConnectWpsAsync(
+ instance.Options.AdapterInfo.WiFiAdapter, instance.Options.NetworkInfo.AvailableNetwork,
+ reconnectionKind);
- // Done connecting
- IsConnecting = false;
+ // Done connecting
+ IsConnecting = false;
- // Get result
- ConnectionStatusMessage = connectionResult == WiFiConnectionStatus.Success
- ? string.Format(Strings.SuccessfullyConnectedToXXX, ssid)
- : string.Format(Strings.CouldNotConnectToXXXReasonXXX, ssid,
- ResourceTranslator.Translate(ResourceIdentifier.WiFiConnectionStatus, connectionResult));
+ // Get result
+ ConnectionStatusMessage = connectionResult == WiFiConnectionStatus.Success
+ ? string.Format(Strings.SuccessfullyConnectedToXXX, ssid)
+ : string.Format(Strings.CouldNotConnectToXXXReasonXXX, ssid,
+ ResourceTranslator.Translate(ResourceIdentifier.WiFiConnectionStatus, connectionResult));
- // Hide message automatically
- _hideConnectionStatusMessageTimer.Start();
+ // Hide message automatically
+ _hideConnectionStatusMessageTimer.Start();
- // Update the Wi-Fi networks.
- // Wait because an error may occur if a refresh is done directly after connecting.
- await ScanAsync(SelectedAdapter, true, 5000);
- }, async instance =>
+ // Update the Wi-Fi networks.
+ // Wait because an error may occur if a refresh is done directly after connecting.
+ await ScanAsync(SelectedAdapter, true, 5000);
+ },
+ _ =>
{
- // Connect WPS
- await _dialogCoordinator.HideMetroDialogAsync(this, customDialog);
-
- var ssid = selectedNetwork.IsHidden ? instance.Ssid : selectedNetwork.AvailableNetwork.Ssid;
-
- // Show status message
- IsConnecting = true;
- ConnectionStatusMessage = string.Format(Strings.ConnectingToXXX, ssid);
- IsConnectionStatusMessageDisplayed = true;
-
- // Connect to the network
- var reconnectionKind = instance.ConnectAutomatically
- ? WiFiReconnectionKind.Automatic
- : WiFiReconnectionKind.Manual;
-
- var connectionResult = await WiFi.ConnectWpsAsync(
- instance.Options.AdapterInfo.WiFiAdapter, instance.Options.NetworkInfo.AvailableNetwork,
- reconnectionKind);
-
- // Done connecting
- IsConnecting = false;
-
- // Get result
- ConnectionStatusMessage = connectionResult == WiFiConnectionStatus.Success
- ? string.Format(Strings.SuccessfullyConnectedToXXX, ssid)
- : string.Format(Strings.CouldNotConnectToXXXReasonXXX, ssid,
- ResourceTranslator.Translate(ResourceIdentifier.WiFiConnectionStatus, connectionResult));
-
- // Hide message automatically
- _hideConnectionStatusMessageTimer.Start();
-
- // Update the Wi-Fi networks.
- // Wait because an error may occur if a refresh is done directly after connecting.
- await ScanAsync(SelectedAdapter, true, 5000);
- },
- _ => { _dialogCoordinator.HideMetroDialogAsync(this, customDialog); }, (selectedAdapter, selectedNetwork),
+ childWindow.IsOpen = false;
+ ConfigurationManager.Current.IsChildWindowOpen = false;
+ }, (selectedAdapter, selectedNetwork),
connectMode);
- customDialog.Content = new WiFiConnectDialog
- {
- DataContext = connectViewModel
- };
- await _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);
+ childWindow.Title = selectedNetwork.IsHidden
+ ? Strings.HiddenNetwork
+ : string.Format(Strings.ConnectToXXX, selectedNetwork.AvailableNetwork.Ssid);
+
+ childWindow.DataContext = childWindowViewModel;
+
+ ConfigurationManager.Current.IsChildWindowOpen = true;
+
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
private async void Disconnect()
@@ -953,12 +952,9 @@ private Task Export()
{
Log.Error("Error while exporting data as " + instance.FileType, ex);
- var settings = AppearanceManager.MetroDialog;
- settings.AffirmativeButtonText = Strings.OK;
-
- await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
- Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
- Environment.NewLine + ex.Message, MessageDialogStyle.Affirmative, settings);
+ await DialogHelper.ShowMessageAsync(Application.Current.MainWindow, Strings.Error,
+ Strings.AnErrorOccurredWhileExportingTheData + Environment.NewLine +
+ Environment.NewLine + ex.Message, ChildWindowIcon.Error);
}
SettingsManager.Current.WiFi_ExportFileType = instance.FileType;
@@ -978,7 +974,7 @@ await _dialogCoordinator.ShowMessageAsync(this, Strings.Error,
ConfigurationManager.Current.IsChildWindowOpen = true;
- return (Application.Current.MainWindow as MainWindow).ShowChildWindowAsync(childWindow);
+ return Application.Current.MainWindow.ShowChildWindowAsync(childWindow);
}
public void OnViewVisible()
diff --git a/Source/NETworkManager/Views/ARPTableAddEntryDialog.xaml b/Source/NETworkManager/Views/ARPTableAddEntryChildWindow.xaml
similarity index 77%
rename from Source/NETworkManager/Views/ARPTableAddEntryDialog.xaml
rename to Source/NETworkManager/Views/ARPTableAddEntryChildWindow.xaml
index 691456a888..60bc100268 100644
--- a/Source/NETworkManager/Views/ARPTableAddEntryDialog.xaml
+++ b/Source/NETworkManager/Views/ARPTableAddEntryChildWindow.xaml
@@ -1,4 +1,4 @@
-
-
+ xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
+ xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
+ CloseButtonCommand="{Binding Path=CancelCommand}"
+ Style="{StaticResource DefaultChildWindow}"
+ Loaded="ChildWindow_OnLoaded"
+ mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:ARPTableAddEntryViewModel}">
+
@@ -32,7 +36,7 @@
+ mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleIPv4Address}">
@@ -44,7 +48,7 @@
+ mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleMACAddress}">
@@ -57,7 +61,7 @@
-
\ No newline at end of file
+
diff --git a/Source/NETworkManager/Views/OKCancelMessageChildWindow.xaml.cs b/Source/NETworkManager/Views/CustomCommandChildWindow.xaml.cs
similarity index 74%
rename from Source/NETworkManager/Views/OKCancelMessageChildWindow.xaml.cs
rename to Source/NETworkManager/Views/CustomCommandChildWindow.xaml.cs
index 6ce7afa025..9e4de57d7b 100644
--- a/Source/NETworkManager/Views/OKCancelMessageChildWindow.xaml.cs
+++ b/Source/NETworkManager/Views/CustomCommandChildWindow.xaml.cs
@@ -3,9 +3,9 @@
namespace NETworkManager.Views;
-public partial class OKCancelMessageChildWindow
+public partial class CustomCommandChildWindow
{
- public OKCancelMessageChildWindow()
+ public CustomCommandChildWindow()
{
InitializeComponent();
}
@@ -14,7 +14,7 @@ private void ChildWindow_OnLoaded(object sender, System.Windows.RoutedEventArgs
{
Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
{
- ButtonOK.Focus();
+ TextBoxName.Focus();
}));
}
}
diff --git a/Source/NETworkManager/Views/CustomCommandDialog.xaml.cs b/Source/NETworkManager/Views/CustomCommandDialog.xaml.cs
deleted file mode 100644
index f01ee3be73..0000000000
--- a/Source/NETworkManager/Views/CustomCommandDialog.xaml.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Windows;
-
-namespace NETworkManager.Views;
-
-public partial class CustomCommandDialog
-{
- public CustomCommandDialog()
- {
- InitializeComponent();
- }
-
- private void UserControl_Loaded(object sender, RoutedEventArgs e)
- {
- TextBoxName.Focus();
- }
-}
\ No newline at end of file
diff --git a/Source/NETworkManager/Views/DNSLookupHostView.xaml.cs b/Source/NETworkManager/Views/DNSLookupHostView.xaml.cs
index daf185a6f6..36a497a3a8 100644
--- a/Source/NETworkManager/Views/DNSLookupHostView.xaml.cs
+++ b/Source/NETworkManager/Views/DNSLookupHostView.xaml.cs
@@ -1,7 +1,6 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
diff --git a/Source/NETworkManager/Views/DNSLookupSettingsView.xaml b/Source/NETworkManager/Views/DNSLookupSettingsView.xaml
index 3f69e7581f..f1f1fb802f 100644
--- a/Source/NETworkManager/Views/DNSLookupSettingsView.xaml
+++ b/Source/NETworkManager/Views/DNSLookupSettingsView.xaml
@@ -10,8 +10,6 @@
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:network="clr-namespace:NETworkManager.Models.Network;assembly=NETworkManager.Models"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
- dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DNSLookupSettingsViewModel}">
diff --git a/Source/NETworkManager/Views/DNSLookupSettingsView.xaml.cs b/Source/NETworkManager/Views/DNSLookupSettingsView.xaml.cs
index e1af7b0db9..c2f399e785 100644
--- a/Source/NETworkManager/Views/DNSLookupSettingsView.xaml.cs
+++ b/Source/NETworkManager/Views/DNSLookupSettingsView.xaml.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using NETworkManager.ViewModels;
+using NETworkManager.ViewModels;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@@ -8,7 +7,7 @@ namespace NETworkManager.Views;
public partial class DNSLookupSettingsView
{
- private readonly DNSLookupSettingsViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly DNSLookupSettingsViewModel _viewModel = new();
public DNSLookupSettingsView()
{
diff --git a/Source/NETworkManager/Views/DNSLookupView.xaml b/Source/NETworkManager/Views/DNSLookupView.xaml
index 904c9ef194..2f8d01c791 100644
--- a/Source/NETworkManager/Views/DNSLookupView.xaml
+++ b/Source/NETworkManager/Views/DNSLookupView.xaml
@@ -11,9 +11,7 @@
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:network="clr-namespace:NETworkManager.Models.Network;assembly=NETworkManager.Models"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:controls="clr-namespace:NETworkManager.Controls;assembly=NETworkManager.Controls"
- dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DNSLookupViewModel}">
diff --git a/Source/NETworkManager/Views/DNSLookupView.xaml.cs b/Source/NETworkManager/Views/DNSLookupView.xaml.cs
index d6276cfc57..310f8dae15 100644
--- a/Source/NETworkManager/Views/DNSLookupView.xaml.cs
+++ b/Source/NETworkManager/Views/DNSLookupView.xaml.cs
@@ -1,7 +1,6 @@
using System;
using System.Windows;
using System.Windows.Controls;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.ViewModels;
@@ -15,7 +14,7 @@ public DNSLookupView(Guid tabId, string host = null)
{
InitializeComponent();
- _viewModel = new DNSLookupViewModel(DialogCoordinator.Instance, tabId, host);
+ _viewModel = new DNSLookupViewModel(tabId, host);
DataContext = _viewModel;
diff --git a/Source/NETworkManager/Views/DiscoveryProtocolView.xaml b/Source/NETworkManager/Views/DiscoveryProtocolView.xaml
index 71176a7957..47de679080 100644
--- a/Source/NETworkManager/Views/DiscoveryProtocolView.xaml
+++ b/Source/NETworkManager/Views/DiscoveryProtocolView.xaml
@@ -6,11 +6,9 @@
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:networkManager="clr-namespace:NETworkManager"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
- xmlns:dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- dialog:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DiscoveryProtocolViewModel}">
diff --git a/Source/NETworkManager/Views/DiscoveryProtocolView.xaml.cs b/Source/NETworkManager/Views/DiscoveryProtocolView.xaml.cs
index 24c5136e58..35281a5be2 100644
--- a/Source/NETworkManager/Views/DiscoveryProtocolView.xaml.cs
+++ b/Source/NETworkManager/Views/DiscoveryProtocolView.xaml.cs
@@ -1,11 +1,10 @@
-using MahApps.Metro.Controls.Dialogs;
-using NETworkManager.ViewModels;
+using NETworkManager.ViewModels;
namespace NETworkManager.Views;
public partial class DiscoveryProtocolView
{
- private readonly DiscoveryProtocolViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly DiscoveryProtocolViewModel _viewModel = new();
public DiscoveryProtocolView()
{
diff --git a/Source/NETworkManager/Views/DropdownDialog.xaml b/Source/NETworkManager/Views/DropDownChildWindow.xaml
similarity index 70%
rename from Source/NETworkManager/Views/DropdownDialog.xaml
rename to Source/NETworkManager/Views/DropDownChildWindow.xaml
index 0af29a6981..23afda28c6 100644
--- a/Source/NETworkManager/Views/DropdownDialog.xaml
+++ b/Source/NETworkManager/Views/DropDownChildWindow.xaml
@@ -1,4 +1,4 @@
-
-
+ xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
+ xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
+ xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
+ CloseButtonCommand="{Binding Path=CancelCommand}"
+ Style="{StaticResource DefaultChildWindow}"
+ mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:DropDownViewModel}">
+
-
-
+
+
@@ -31,12 +36,14 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Source/NETworkManager/Views/PortProfilesChildWindow.xaml.cs b/Source/NETworkManager/Views/PortProfilesChildWindow.xaml.cs
new file mode 100644
index 0000000000..fbdd28ca05
--- /dev/null
+++ b/Source/NETworkManager/Views/PortProfilesChildWindow.xaml.cs
@@ -0,0 +1,43 @@
+using NETworkManager.ViewModels;
+using System;
+using System.Windows;
+using System.Windows.Threading;
+
+namespace NETworkManager.Views;
+
+public partial class PortProfilesChildWindow
+{
+ public PortProfilesChildWindow(Window parentWindow)
+ {
+ InitializeComponent();
+
+ // Set the width and height of the child window based on the parent window size
+ ChildWindowMaxWidth = 850;
+ ChildWindowMaxHeight = 650;
+ ChildWindowWidth = parentWindow.ActualWidth * 0.85;
+ //ChildWindowHeight = parentWindow.ActualHeight * 0.85;
+
+ // Update the size of the child window when the parent window is resized
+ parentWindow.SizeChanged += (_, _) =>
+ {
+ ChildWindowWidth = parentWindow.ActualWidth * 0.85;
+ //ChildWindowHeight = parentWindow.ActualHeight * 0.85;
+ };
+ }
+
+ private void ChildWindow_OnLoaded(object sender, RoutedEventArgs e)
+ {
+ Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
+ {
+ TextBoxSearch.Focus();
+ }));
+ }
+
+ private void DataGridRow_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+ {
+ var x = (SNMPOIDProfilesViewModel)DataContext;
+
+ if (x.OKCommand.CanExecute(null))
+ x.OKCommand.Execute(null);
+ }
+}
diff --git a/Source/NETworkManager/Views/PortProfilesDialog.xaml.cs b/Source/NETworkManager/Views/PortProfilesDialog.xaml.cs
deleted file mode 100644
index a0a5020fb2..0000000000
--- a/Source/NETworkManager/Views/PortProfilesDialog.xaml.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Windows;
-using System.Windows.Input;
-using NETworkManager.ViewModels;
-
-namespace NETworkManager.Views;
-
-public partial class PortProfilesDialog
-{
- public PortProfilesDialog()
- {
- InitializeComponent();
- }
-
- private void UserControl_Loaded(object sender, RoutedEventArgs e)
- {
- TextBoxSearch.Focus();
- }
-
- private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
- {
- var x = (PortProfilesViewModel)DataContext;
-
- if (x.OKCommand.CanExecute(null))
- x.OKCommand.Execute(null);
- }
-}
\ No newline at end of file
diff --git a/Source/NETworkManager/Views/PortScannerHostView.xaml.cs b/Source/NETworkManager/Views/PortScannerHostView.xaml.cs
index ad1d4974b0..2b115f44cf 100644
--- a/Source/NETworkManager/Views/PortScannerHostView.xaml.cs
+++ b/Source/NETworkManager/Views/PortScannerHostView.xaml.cs
@@ -1,7 +1,6 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
diff --git a/Source/NETworkManager/Views/PortScannerSettingsView.xaml b/Source/NETworkManager/Views/PortScannerSettingsView.xaml
index 1efe63feb7..27077b6ac8 100644
--- a/Source/NETworkManager/Views/PortScannerSettingsView.xaml
+++ b/Source/NETworkManager/Views/PortScannerSettingsView.xaml
@@ -7,9 +7,7 @@
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:network="clr-namespace:NETworkManager.Models.Network;assembly=NETworkManager.Models"
- xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
- dialogs:DialogParticipation.Register="{Binding}"
+ xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PortScannerSettingsViewModel}">
diff --git a/Source/NETworkManager/Views/PortScannerSettingsView.xaml.cs b/Source/NETworkManager/Views/PortScannerSettingsView.xaml.cs
index 5221cdfc60..ccc2fcd599 100644
--- a/Source/NETworkManager/Views/PortScannerSettingsView.xaml.cs
+++ b/Source/NETworkManager/Views/PortScannerSettingsView.xaml.cs
@@ -1,14 +1,13 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
public partial class PortScannerSettingsView
{
- private readonly PortScannerSettingsViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly PortScannerSettingsViewModel _viewModel = new();
public PortScannerSettingsView()
{
diff --git a/Source/NETworkManager/Views/PortScannerView.xaml b/Source/NETworkManager/Views/PortScannerView.xaml
index 9e6aec1df6..739cf1e691 100644
--- a/Source/NETworkManager/Views/PortScannerView.xaml
+++ b/Source/NETworkManager/Views/PortScannerView.xaml
@@ -13,8 +13,6 @@
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:controls="clr-namespace:NETworkManager.Controls;assembly=NETworkManager.Controls"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
- dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PortScannerViewModel}">
diff --git a/Source/NETworkManager/Views/PortScannerView.xaml.cs b/Source/NETworkManager/Views/PortScannerView.xaml.cs
index 19845cb200..1ce0d1ce6f 100644
--- a/Source/NETworkManager/Views/PortScannerView.xaml.cs
+++ b/Source/NETworkManager/Views/PortScannerView.xaml.cs
@@ -1,7 +1,6 @@
using System;
using System.Windows;
using System.Windows.Controls;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.Controls;
using NETworkManager.ViewModels;
@@ -15,7 +14,7 @@ public PortScannerView(Guid tabId, string host = null, string ports = null)
{
InitializeComponent();
- _viewModel = new PortScannerViewModel(DialogCoordinator.Instance, tabId, host, ports);
+ _viewModel = new PortScannerViewModel(tabId, host, ports);
DataContext = _viewModel;
diff --git a/Source/NETworkManager/Views/PowerShellConnectChildWindow.xaml.cs b/Source/NETworkManager/Views/PowerShellConnectChildWindow.xaml.cs
index e1df777b96..09853a982f 100644
--- a/Source/NETworkManager/Views/PowerShellConnectChildWindow.xaml.cs
+++ b/Source/NETworkManager/Views/PowerShellConnectChildWindow.xaml.cs
@@ -15,7 +15,10 @@ private void ChildWindow_OnLoaded(object sender, RoutedEventArgs e)
{
Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(delegate
{
- ComboBoxHost.Focus();
+ if (ComboBoxHost.Visibility == Visibility.Visible)
+ ComboBoxHost.Focus();
+ else
+ TextBoxCommand.Focus();
}));
}
}
diff --git a/Source/NETworkManager/Views/PowerShellSettingsView.xaml b/Source/NETworkManager/Views/PowerShellSettingsView.xaml
index dd2f731d3e..14409048e9 100644
--- a/Source/NETworkManager/Views/PowerShellSettingsView.xaml
+++ b/Source/NETworkManager/Views/PowerShellSettingsView.xaml
@@ -5,10 +5,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
- dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PowerShellSettingsViewModel}">
diff --git a/Source/NETworkManager/Views/PowerShellSettingsView.xaml.cs b/Source/NETworkManager/Views/PowerShellSettingsView.xaml.cs
index 9e3676d30e..9686cc9fb0 100644
--- a/Source/NETworkManager/Views/PowerShellSettingsView.xaml.cs
+++ b/Source/NETworkManager/Views/PowerShellSettingsView.xaml.cs
@@ -1,12 +1,11 @@
using System.Windows;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
public partial class PowerShellSettingsView
{
- private readonly PowerShellSettingsViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly PowerShellSettingsViewModel _viewModel = new();
public PowerShellSettingsView()
{
diff --git a/Source/NETworkManager/Views/ProfilesView.xaml.cs b/Source/NETworkManager/Views/ProfilesView.xaml.cs
index 3e8242639e..a26627cf2e 100644
--- a/Source/NETworkManager/Views/ProfilesView.xaml.cs
+++ b/Source/NETworkManager/Views/ProfilesView.xaml.cs
@@ -1,7 +1,6 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
diff --git a/Source/NETworkManager/Views/PuTTYHostView.xaml b/Source/NETworkManager/Views/PuTTYHostView.xaml
index 4e8ec3cad9..9daad3aaf7 100644
--- a/Source/NETworkManager/Views/PuTTYHostView.xaml
+++ b/Source/NETworkManager/Views/PuTTYHostView.xaml
@@ -8,7 +8,6 @@
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
xmlns:controls="clr-namespace:NETworkManager.Controls;assembly=NETworkManager.Controls"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:internalControls="clr-namespace:NETworkManager.Controls"
@@ -18,7 +17,6 @@
xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
xmlns:networkManager="clr-namespace:NETworkManager"
- dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PuTTYHostViewModel}">
diff --git a/Source/NETworkManager/Views/PuTTYHostView.xaml.cs b/Source/NETworkManager/Views/PuTTYHostView.xaml.cs
index 431d40ce23..e9a52605f4 100644
--- a/Source/NETworkManager/Views/PuTTYHostView.xaml.cs
+++ b/Source/NETworkManager/Views/PuTTYHostView.xaml.cs
@@ -3,14 +3,13 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
public partial class PuTTYHostView
{
- private readonly PuTTYHostViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly PuTTYHostViewModel _viewModel = new();
private bool _loaded;
diff --git a/Source/NETworkManager/Views/PuTTYSettingsView.xaml b/Source/NETworkManager/Views/PuTTYSettingsView.xaml
index 4d5f6a0d9a..d1aeb07729 100644
--- a/Source/NETworkManager/Views/PuTTYSettingsView.xaml
+++ b/Source/NETworkManager/Views/PuTTYSettingsView.xaml
@@ -5,11 +5,9 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:validators="clr-namespace:NETworkManager.Validators;assembly=NETworkManager.Validators"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
- dialogs:DialogParticipation.Register="{Binding}"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:PuTTYSettingsViewModel}">
diff --git a/Source/NETworkManager/Views/PuTTYSettingsView.xaml.cs b/Source/NETworkManager/Views/PuTTYSettingsView.xaml.cs
index c429dd4209..ad6dc23cb5 100644
--- a/Source/NETworkManager/Views/PuTTYSettingsView.xaml.cs
+++ b/Source/NETworkManager/Views/PuTTYSettingsView.xaml.cs
@@ -1,5 +1,4 @@
using System.Windows;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
@@ -9,7 +8,7 @@ public partial class PuTTYSettingsView
///
/// Variable to hold an instance of the view model.
///
- private readonly PuTTYSettingsViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly PuTTYSettingsViewModel _viewModel = new();
///
/// Create a new instance of .
diff --git a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
index f23306bda2..0c101d0561 100644
--- a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
+++ b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml
@@ -8,7 +8,6 @@
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
xmlns:converters="clr-namespace:NETworkManager.Converters;assembly=NETworkManager.Converters"
xmlns:controls="clr-namespace:NETworkManager.Controls;assembly=NETworkManager.Controls"
- xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:viewModels="clr-namespace:NETworkManager.ViewModels"
xmlns:localization="clr-namespace:NETworkManager.Localization.Resources;assembly=NETworkManager.Localization"
xmlns:settings="clr-namespace:NETworkManager.Settings;assembly=NETworkManager.Settings"
@@ -17,7 +16,6 @@
xmlns:profiles="clr-namespace:NETworkManager.Profiles;assembly=NETworkManager.Profiles"
xmlns:wpfHelpers="clr-namespace:NETworkManager.Utilities.WPF;assembly=NETworkManager.Utilities.WPF"
xmlns:networkManager="clr-namespace:NETworkManager"
- dialogs:DialogParticipation.Register="{Binding}"
Loaded="UserControl_Loaded"
mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:RemoteDesktopHostViewModel}">
diff --git a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml.cs b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml.cs
index 35a87953f1..3e38844ea4 100644
--- a/Source/NETworkManager/Views/RemoteDesktopHostView.xaml.cs
+++ b/Source/NETworkManager/Views/RemoteDesktopHostView.xaml.cs
@@ -1,5 +1,4 @@
-using MahApps.Metro.Controls.Dialogs;
-using NETworkManager.ViewModels;
+using NETworkManager.ViewModels;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
@@ -9,7 +8,7 @@ namespace NETworkManager.Views;
public partial class RemoteDesktopHostView
{
- private readonly RemoteDesktopHostViewModel _viewModel = new(DialogCoordinator.Instance);
+ private readonly RemoteDesktopHostViewModel _viewModel = new();
private bool _loaded;
diff --git a/Source/NETworkManager/Views/SNMPHostView.xaml.cs b/Source/NETworkManager/Views/SNMPHostView.xaml.cs
index f9d8200401..afb45a4eb6 100644
--- a/Source/NETworkManager/Views/SNMPHostView.xaml.cs
+++ b/Source/NETworkManager/Views/SNMPHostView.xaml.cs
@@ -1,7 +1,6 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MahApps.Metro.Controls.Dialogs;
using NETworkManager.ViewModels;
namespace NETworkManager.Views;
diff --git a/Source/NETworkManager/Views/SNMPOIDProfileDialog.xaml b/Source/NETworkManager/Views/SNMPOIDProfileChildWindow.xaml
similarity index 86%
rename from Source/NETworkManager/Views/SNMPOIDProfileDialog.xaml
rename to Source/NETworkManager/Views/SNMPOIDProfileChildWindow.xaml
index 622682b3b7..1b6c5145b0 100644
--- a/Source/NETworkManager/Views/SNMPOIDProfileDialog.xaml
+++ b/Source/NETworkManager/Views/SNMPOIDProfileChildWindow.xaml
@@ -1,4 +1,4 @@
-
-
+ xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"
+ xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
+ CloseButtonCommand="{Binding Path=CancelCommand}"
+ Style="{StaticResource DefaultChildWindow}"
+ Loaded="ChildWindow_OnLoaded"
+ mc:Ignorable="d" d:DataContext="{d:DesignInstance viewModels:SNMPOIDProfileViewModel}">
+
@@ -35,7 +39,7 @@
+ mah:TextBoxHelper.Watermark="{x:Static localization:StaticStrings.ExampleSNMPMIB}">
@@ -89,7 +93,7 @@
+ Mode="{Binding Data.Mode, Source={StaticResource BindingProxy}}" />
@@ -101,7 +105,7 @@