diff --git a/ILSpy/Commands/FileCommands.cs b/ILSpy/Commands/FileCommands.cs
index f37f97860..d7e64420d 100644
--- a/ILSpy/Commands/FileCommands.cs
+++ b/ILSpy/Commands/FileCommands.cs
@@ -96,7 +96,23 @@ namespace ILSpy.Commands
[Shared]
sealed class ManageAssemblyListsCommand : SimpleCommand
{
- public override void Execute(object? parameter) => NotImplementedDialog.Show(Resources.ManageAssembly_Lists);
+ readonly SettingsService settingsService;
+
+ [ImportingConstructor]
+ public ManageAssemblyListsCommand(SettingsService settingsService)
+ {
+ this.settingsService = settingsService;
+ }
+
+ public override void Execute(object? parameter)
+ {
+ var owner = (global::Avalonia.Application.Current?.ApplicationLifetime
+ as global::Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime)?.MainWindow;
+ if (owner == null)
+ return;
+ var dlg = new Views.ManageAssemblyListsDialog(settingsService);
+ _ = dlg.ShowDialog(owner);
+ }
}
[ExportMainMenuCommand(ParentMenuID = nameof(Resources._File), Header = nameof(Resources._Reload), MenuIcon = "Images/Refresh", MenuCategory = nameof(Resources.Open), MenuOrder = 2, InputGestureText = "F5")]
diff --git a/ILSpy/Views/CreateListDialog.axaml b/ILSpy/Views/CreateListDialog.axaml
new file mode 100644
index 000000000..8fa1ffc9d
--- /dev/null
+++ b/ILSpy/Views/CreateListDialog.axaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy/Views/CreateListDialog.axaml.cs b/ILSpy/Views/CreateListDialog.axaml.cs
new file mode 100644
index 000000000..a01cbdc46
--- /dev/null
+++ b/ILSpy/Views/CreateListDialog.axaml.cs
@@ -0,0 +1,58 @@
+// Copyright (c) 2026 AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace ILSpy.Views
+{
+ ///
+ /// Modal prompt for a single text field — used by ManageAssemblyListsDialog's
+ /// New / Clone / Rename / Add-Preconfigured flows. Returns the entered name via
+ /// 's string result, or null if
+ /// the user cancelled. Title and initial text are passed in by the caller so the
+ /// same window backs all four flows.
+ ///
+ public partial class CreateListDialog : Window
+ {
+ TextBox listNameBox = null!;
+ Button okButton = null!;
+
+ public CreateListDialog()
+ {
+ InitializeComponent();
+ listNameBox = this.FindControl("ListNameBox")!;
+ okButton = this.FindControl