Basically a PropertyDefinition depends only on the underlaying property, so that it does not contain any public information about the type which member is that property. You may try storing the DataTemplateSelectorinstance in your ViewModel, so that the Item value is visible in its scope. Apparently, this is not a great MVVM approach. We have discussed this scenario and we have decided to expose the respectivePropertyGridField instance as "Container" parameter in the invocation of of DataTemplateSelector'sSelectTemplate(). As it is a visual element, you would be able to access RadPropertyGrid's Item easily. This change will be available with next week's internal build. As for the PropertyDefinitions property, it is ReadOnly by design. You can try using an attached behavior that subscribes to RadPropertyGrid's loaded event and adding the PropertyDefinitions there.
All the best,
the Telerik team