Приоритет свойства зависимостей WPF и ссылочный тип Значения по умолчанию

Если я создаю пользовательский элемент управления, как это:

public class MyControl : ContentControl
{
   public static readonly DependencyProperty ItemsProperty =               
         DependencyProperty.Register(
                "Items", 
                typeof(ObservableCollection), 
                typeof(MyControl), 
                new PropertyMetadata(null));

   public MyControl()
   {   
       // Setup a default value to empty collection
       // so users of MyControl can call MyControl.Items.Add()
       Items = new ObservableCollection();
   }

   public ObservableCollection Items
   { 
      get { return (ObservableCollection)GetValue(ItemsProperty); } 
      set { SetValue(ItemsProperty, value); } 
   } 
}

А затем разрешите пользователю связываться с ним в Xaml следующим образом:


    

Тогда привязка никогда не работает! Это связано сСвойство зависимостей Приоритет, который помещает значения CLR Set выше шаблонных привязок!

Итак, я понимаю, почему это нене работает, но мне интересно, если есть решение. Можно ли предоставить значение ItemsProperty по умолчанию для новой ObservableCollection для ленивых потребителей MyControl, которые просто хотят добавлять элементы программным способом, позволяя опытным пользователям MVVM My Control связываться с тем же свойством через DataTemplate?

Это для Silverlight & WPF. Сеттер DynamicResource в стиле казался решением, но это победилоне работает для Silverlight :(

Обновить:

я могу подтвердитьSetCurrentValue(ItemsProperty, new ObservableCollection()); делает именно то, что я хочу - в WPF. Он записывает значение по умолчанию, но его можно переопределить привязками шаблона.Кто-нибудь может предложить эквивалент Silverlight? Проще сказать, чем сделать! : s

Еще одно обновление:

По-видимому, вы можете смоделировать SetCurrentValue в .NET3.5, используя приведение значений, и вы можете смоделировать приведение значений в Silverlight, используя эти приемы. Возможно, здесь есть (многословный) обходной путь.

Обходной путь SetCurrentValue для .NET3.5 с использованием Value Coercion

Временное решение Value Coercion для Silverlight