Ограничить свойство зависимостей в wpf

Я хочу прикрепить свойство зависимости только к определенным элементам управления.

Если это только один тип, я могу сделать следующее:

public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.RegisterAttached("MyProperty", typeof(object), typeof(ThisStaticWrapperClass));

public static object GetMyProperty(MyControl control)
{
    if (control == null) { throw new ArgumentNullException("control"); }

    return control.GetValue(MyPropertyProperty);
}

public static void SetMyProperty(MyControl control, object value)
{
    if (control == null) { throw new ArgumentNullException("control"); }

    control.SetValue(MyPropertyProperty, value);
}

(Итак: ограничьте тип Control в Get / Set-методах)

Но теперь я хочу разрешить это свойство чтобы подключиться к другому типу Control , тоже.
Вы бы попытались добавить перегрузку для обоих методов с этим новым типом, но это не удалось скомпилировать из-за «Неизвестная ошибка сборки, обнаружено неоднозначное совпадение».

Итак, как я могу ограничить мои DependencyProperty к выбору Control s?
(Примечание: в моем конкретном случае он мне нужен для TextBox и ComboBox )

11
задан ordag 29 July 2011 в 14:09
поделиться