Привязка DependencyProperties

Допустим, у меня есть настраиваемый элемент управления, который обертывает другой элемент управления (например, MyCustomButton). Я открываю свойство Content, которое является оболочкой для внутреннего элемента управления:

    public object Content
    {
        get { return innerControl.Content; }
        set { innerControl.Content = value; }
    }

Чтобы потребитель мог привязаться к этому свойству, мне нужно определить для него DependencyProperty:

 public static DependencyProperty ContentProperty = DependencyProperty.Register("Content", typeof (object), typeof (MyCustomButton));

но теперь мне нужно определение моего свойства, чтобы использовать GetValue / SetValue :

    public object Content
    {
        get { return GetValue(ContentProperty); }
        set { SetValue(ContentProperty, value); }
    }

поэтому я больше не оборачиваю значение внутреннего элемента управления.

Я могу определить PropertyMetadata для обработки события PropertyChanged в DependencyProperty, но тогда мне понадобится связка связующего кода, чтобы синхронизировать значения и предотвратить бесконечные петли при изменении.

ОБНОВЛЕНИЕ: я не могу просто унаследовать от Button, потому что у моего UserControl есть другие проблемы.

Есть ли лучший способ сделать это?

6
задан Jeff 14 December 2011 в 19:50
поделиться