DynamicEditorButton.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Collections.Generic;
  2. using System.Windows.Controls;
  3. using System.Windows.Media.Imaging;
  4. using static InABox.DynamicGrid.DynamicEditorButton;
  5. namespace InABox.DynamicGrid
  6. {
  7. public class DynamicEditorButton
  8. {
  9. public delegate void ClickHandler(object sender, object item);
  10. public DynamicEditorButton(string name, BitmapImage? image, object item, ClickHandler onclick)
  11. {
  12. Name = name;
  13. OnClick = onclick;
  14. Item = item;
  15. Image = image;
  16. }
  17. public string Name { get; set; }
  18. public object Item { get; set; }
  19. public BitmapImage? Image { get; set; }
  20. public Button Button { get; set; }
  21. public object Form { get; set; }
  22. public event ClickHandler OnClick;
  23. public void Click()
  24. {
  25. OnClick?.Invoke(Form, Item);
  26. }
  27. }
  28. public class DynamicEditorButtons : List<DynamicEditorButton>
  29. {
  30. public DynamicEditorButton Add(string name, BitmapImage? image, object item, ClickHandler onclick)
  31. {
  32. var editorbutton = new DynamicEditorButton(name, image, item, onclick);
  33. Add(editorbutton);
  34. return editorbutton;
  35. }
  36. }
  37. }