Вы пытались использовать метод AddOwner?
Пример (FrameworkContentElement):
DataContextProperty = FrameworkElement.DataContextProperty.AddOwner(typeof(FrameworkContentElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits, new PropertyChangedCallback(FrameworkContentElement.OnDataContextChanged)));
Если вы пропустите обратный вызов / опции ... это может сработать.