|
@@ -21,7 +21,7 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
public class DynamicMenuColumn : DynamicImageColumn
|
|
|
{
|
|
|
- private readonly Action<DynamicMenuColumn, CoreRow?> _build;
|
|
|
+ private readonly BuildMenu _build;
|
|
|
|
|
|
private readonly ContextMenu _menu;
|
|
|
|
|
@@ -30,7 +30,9 @@ namespace InABox.DynamicGrid
|
|
|
private readonly BitmapImage _enabled = Resources.menu.AsBitmapImage();
|
|
|
private readonly BitmapImage _disabled = Resources.menu.Fade(0.25F).AsBitmapImage();
|
|
|
|
|
|
- public DynamicMenuColumn(Action<DynamicMenuColumn, CoreRow?> build, Func<CoreRow, DynamicMenuStatus>? status = null) : base(r => null)
|
|
|
+ public delegate void BuildMenu(DynamicMenuColumn column, CoreRow? row);
|
|
|
+
|
|
|
+ public DynamicMenuColumn(BuildMenu build, Func<CoreRow, DynamicMenuStatus>? status = null) : base(r => null)
|
|
|
{
|
|
|
_menu = new ContextMenu();
|
|
|
|
|
@@ -63,7 +65,7 @@ namespace InABox.DynamicGrid
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- public MenuItem AddItem(string text, System.Drawing.Bitmap? image, Action<CoreRow>? action, object? parent = null, bool enabled = true)
|
|
|
+ public MenuItem AddItem(string text, System.Drawing.Bitmap? image, Action<CoreRow?>? action, object? parent = null, bool enabled = true)
|
|
|
{
|
|
|
var item = new MenuItem();
|
|
|
if (image != null)
|
|
@@ -84,7 +86,7 @@ namespace InABox.DynamicGrid
|
|
|
return item;
|
|
|
}
|
|
|
|
|
|
- public MenuItem AddCalendar(string text, DateTime startDate, System.Drawing.Bitmap? image, Action<CoreRow, DateTime?>? action, object? parent = null, bool enabled = true)
|
|
|
+ public MenuItem AddCalendar(string text, DateTime startDate, System.Drawing.Bitmap? image, Action<CoreRow?, DateTime?>? action, object? parent = null, bool enabled = true)
|
|
|
{
|
|
|
var item = new MenuItem();
|
|
|
if (image != null)
|
|
@@ -117,7 +119,7 @@ namespace InABox.DynamicGrid
|
|
|
return item;
|
|
|
}
|
|
|
|
|
|
- public void AddSeparator(object parent = null)
|
|
|
+ public void AddSeparator(object? parent = null)
|
|
|
{
|
|
|
var item = new Separator();
|
|
|
if (parent == null)
|
|
@@ -126,13 +128,13 @@ namespace InABox.DynamicGrid
|
|
|
((MenuItem)parent).Items.Add(item);
|
|
|
}
|
|
|
|
|
|
- private CoreRow GetRow(MenuItem item)
|
|
|
+ private CoreRow? GetRow(MenuItem? item)
|
|
|
{
|
|
|
if (item == null)
|
|
|
return null;
|
|
|
|
|
|
if (item.Parent is ContextMenu)
|
|
|
- return (item.Parent as ContextMenu).Tag as CoreRow;
|
|
|
+ return (item.Parent as ContextMenu)?.Tag as CoreRow;
|
|
|
|
|
|
return GetRow(item.Parent as MenuItem);
|
|
|
}
|