|
|
@@ -2,7 +2,9 @@
|
|
|
using Avalonia.Media;
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
using CommunityToolkit.Mvvm.Input;
|
|
|
+using InABox.Avalonia.Dialogs;
|
|
|
using InABox.Core;
|
|
|
+using System.Runtime.CompilerServices;
|
|
|
|
|
|
namespace InABox.Avalonia.Components;
|
|
|
|
|
|
@@ -89,7 +91,7 @@ public partial class AvaloniaMenuItem : ObservableObject
|
|
|
Header = item.Header,
|
|
|
Icon = new Image { Source = item.Image },
|
|
|
Command = item.Action != null
|
|
|
- ? new RelayCommand(() => item.Action())
|
|
|
+ ? new RelayCommand(() => item.Action().ErrorIfFail())
|
|
|
: null
|
|
|
};
|
|
|
targetItems.Add(targetItem);
|
|
|
@@ -106,4 +108,14 @@ public partial class AvaloniaMenuItem : ObservableObject
|
|
|
targetItems.Add(targetItem);
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+public static class AvaloniaMenuExtensions
|
|
|
+{
|
|
|
+ public static ContextMenu Build(this CoreMenu<IImage> menu)
|
|
|
+ {
|
|
|
+ var contextMenu = new ContextMenu();
|
|
|
+ AvaloniaMenuItem.LoadMenuItems(menu.Items, contextMenu.Items);
|
|
|
+ return contextMenu;
|
|
|
+ }
|
|
|
+}
|