public static T GetCommandFromCommandButtons <T>(object sender) where T : CommandModelBase { CommandListingButtonsControl commandListingButtonsControl = (CommandListingButtonsControl)sender; if (commandListingButtonsControl != null && commandListingButtonsControl.DataContext != null) { if (commandListingButtonsControl.DataContext is CommandModelBase) { return((T)commandListingButtonsControl.DataContext); } else if (commandListingButtonsControl.DataContext is EventCommandItemViewModel) { EventCommandItemViewModel commandItem = (EventCommandItemViewModel)commandListingButtonsControl.DataContext; return((T)(CommandModelBase)commandItem.Command); } else if (commandListingButtonsControl.DataContext is StreamPassCustomLevelUpCommandViewModel) { StreamPassCustomLevelUpCommandViewModel commandItem = (StreamPassCustomLevelUpCommandViewModel)commandListingButtonsControl.DataContext; return((T)commandItem.Command); } else if (commandListingButtonsControl.DataContext is RedemptionStoreProductViewModel) { RedemptionStoreProductViewModel commandItem = (RedemptionStoreProductViewModel)commandListingButtonsControl.DataContext; return((T)commandItem.Command); } else if (commandListingButtonsControl.DataContext is GameOutcomeViewModel) { GameOutcomeViewModel commandItem = (GameOutcomeViewModel)commandListingButtonsControl.DataContext; return((T)(CommandModelBase)commandItem.Command); } } return(null); }
protected void OutcomeCommandButtons_CommandButtons(object sender, RoutedEventArgs e) { GameOutcomeViewModel outcome = FrameworkElementHelpers.GetDataContext <GameOutcomeViewModel>(sender); if (outcome.Command != null) { CommandEditorWindow window = new CommandEditorWindow(outcome.Command); window.CommandSaved += (object s, CommandModelBase command) => { outcome.Command = (CustomCommandModel)command; }; window.Show(); } }