public ListElementEventHandler(IOuterControls outerControls) { outerEventRaisers = CreateRaiserDefinitions(outerControls); addObjectFieldDropRaiser = outerEventRaisers.Single(x => x.Control.ClassListContains(UxmlClassNames.AddItemObjectFieldClassName)); this.outerControls = outerControls; }
public static IEnumerable <EventRaiserDefinition> CreateRaiserDefinitions(IOuterControls controls) { void SetExtraEventData(EventBase obj) { if (!(obj is AddItemEvent evt)) { throw new ArgumentException($"Expected type: {typeof(AddItemEvent)}"); } evt.Item = controls.AddObjectField.value; } return(new List <EventRaiserDefinition> { EventRaiserDefinition.Create <ClearListRequestedEvent>(controls.ClearList), EventRaiserDefinition.Create <ClearListEvent>(controls.ClearListConfirm), EventRaiserDefinition.Create <ClearListCancelledEvent>(controls.ClearListCancel), EventRaiserDefinition.Create <AddItemEvent>(controls.Add), EventRaiserDefinition.Create <AddItemEvent>(controls.AddObjectField, SetExtraEventData) }); }