Я могу указать 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}.
Спасибо за ваше бесценное время.