In your UI, you have an event handler for the dropdown list, so we'll start from that perspective. ```csharp public void DropDownSelectChanged(object sender, EventArgs args) { // assuming the sender is the drop down var ddl = sender as DropDown; // whatever the actual control is in your GUI Calculate(ddl.SelectedItem); } ``` The Calculate method will then call the appropriate Action to react to the state of the application. ```csharp // These get set in your constructor. public Action MoreApplesAction {get; set;} public Action FewerApplesAction {get; set;} public void Caclulate(Fruit selectedFruit) { // Of course, these should be properties somewhere var Apple = 5 var Orange = 1 // It's OK to create guards like this to // enhance readability, but don't be surprised // when someone objects because of the memory // allocation. var MoreApples = Apple > Orange; var FewerApples = Apple < Orange; switch(selectedFruit) { case Apple: if(MoreApplies) MoreApplesAction?.Invoke(); break; case Orange: if(FewerApples) FewerApplesAction?.Invoke(); break; } } ```
The Sharp Ninja