Обновлено, чтобы объяснить более понятно.
Я скажу, является ли ваш DataTemplate универсальным:
Т.е. у вас есть UserControl, который привязывается к ViewModel, и у этого ViewModel есть BaseViewModel, который предоставляет какие-то свойства. Ваш DataTemplate отображает эти свойства. Таким образом, вы можете использовать этот DataTemplate в каждом ViewModel, который реализует BaseViewModel.
Лучше поместить его в App.xaml
, чтобы вы могли вытащить его с помощью ключа и применить в другом месте вашего проекта.
Но если ваш DataTemplate очень специфичен,
т. Е. Существует UserControl, который связывается только с указанным свойством в этой ViewModel, и вы знаете, что никакой другой элемент управления не будет привязываться к этой ViewModel, вы захотите поместить в тот же файл Xaml файл Resources
или место, где вы определяете свой UserControl
.