I did a test project with a main window, and changing out the content based on the selected viewmodel. This worked fine using data templates and binding content to the viewmodel.
I created an ArcGIS Pro addin using ProWindow. This window is using the main view model fine. If I add a view to the xml directly and set the data context of this view to the child view model, this displays fine. If I try to use a datatemplate for the viewmodel to bind to the view, I only see the name of the viewmodel class.
Since the ProWindow, does not create the app.xaml, I can't add the datatemplate to the app.resources, but have added it to the prowindow.resources. I'm not sure what else to try.
Adding the datatemplate worked fine in my other project, so I'm not sure what may be going on. I was using a bindable base class implementing INotifyPropertyChanged for all of my view models. I switched it over to the ESRI framework version just in case, with no change in outcome. I am new to WPF which is why I tested it separately from the ArcGIS Addin project first.