using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using JetBrains.Annotations; namespace DjRedo.Controls { public class StepControl : Control { public IStepData StepData { get { return (IStepData)GetValue(StepDataProperty); } set { SetValue(StepDataProperty, value); } } // Using a DependencyProperty as the backing store for StepData. This enables animation, styling, binding, etc... public static readonly DependencyProperty StepDataProperty = DependencyProperty.Register(nameof(StepData), typeof(IStepData), typeof(StepControl)); static StepControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(StepControl), new FrameworkPropertyMetadata(typeof(StepControl))); } } }