private static void OnAbilityChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { NonStaticAbility nonStaticAbility = e.NewValue as NonStaticAbility; if (nonStaticAbility is TriggerAbility triggerAbility) { (d as AbilityCanvas)._textBox.Text = string.Format("{0} {1}", TriggerConditionFactory.GetTextForTriggerCondition(triggerAbility.TriggerCondition), LowerCaseFirstLetter(EffectFactory.GetTextForEffects(triggerAbility.Effects))); } else { throw new InvalidOperationException("Unknown nonStaticAbility."); } }