Я могу указать DataContext следующим образом:
<Window ... >
<Window.DataContext>
<MainViewModel />
</Window.DataContext>
...
</Window>
И в этом случае WPF создаст объект типа MainViewModel и присвоит его свойству DataContext окна (это происходит внутри метода Window InitializeComponent()).
Но что, если мой ViewModel не имеет конструктора по умолчанию. Или что, если я хочу инициализировать ViewModel и назначить его DataContext после выполнения Window.InitializeComponent() (внутри конструктора Window или из того же кода, который создает экземпляр окна) - в этом случае WPF создает ViewModel (внутри InitializeComponent()), назначает его к окну DataContext, а затем я перезаписываю его другим экземпляром ViewModel (я беспокоюсь о ненужном экземпляре объекта здесь).
Я хотел бы иметь возможность указать только тип ViewModel, поэтому я бы получил предупреждение о времени разработки, если я пропустил имя свойства внутри {Binding} (или после переименования свойства), или я мог бы перейти к Объявление, нажав (в XAML) на имя свойства внутри {Binding PropertyName}.
Спасибо за ваше бесценное время.