123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.Wpf;
- using InABox.WPF;
- using javax.xml.crypto;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Shapes;
- namespace PRSDesktop
- {
- public delegate void ConfigureColumnsHandler(DynamicGridColumns columns);
- /// <summary>
- /// Interaction logic for EntitySelectionWindow.xaml
- /// </summary>
- public partial class EntitySelectionWindow : ThemableWindow
- {
- public event ConfigureColumnsHandler? DoConfigureColumns;
- private IEntitySelectionGrid grid;
- public HashSet<Guid> Entities => grid.Entities;
- public EntitySelectionWindow(Type entityType, HashSet<Guid> entities, Type? gridType = null)
- {
- InitializeComponent();
- grid = typeof(EntitySelectionWindow).GetMethod(nameof(MakeGrid), BindingFlags.Instance | BindingFlags.NonPublic)
- .MakeGenericMethod(gridType ?? typeof(EntitySelectionGrid<>).MakeGenericType(entityType), entityType)
- .Invoke(this, new object?[] { entities }) as IEntitySelectionGrid;
- LayoutGrid.Children.Add(grid as UIElement);
- }
- private IEntitySelectionGrid MakeGrid<TGrid, T>(HashSet<Guid> entities)
- where TGrid : EntitySelectionGrid<T>, new()
- where T : Entity, IRemotable, IPersistent, new()
- {
- var grid = new TGrid();
- grid.Entities = entities;
- grid.Refresh(true, true);
- return grid;
- }
- }
- }
|