Ранее я задавал датаконтекст окна/страницы весьма стандартно посредством инструкции в коде-позади, в таком случае у меня не возникало никаких проблем.
public class ExampleWindowViewModel
{
public ExampleWindowViewModel(int parameter)
{
...
}
}
public partial class ExampleWindow : Window
{
public ExampleWindow()
{
this.DataContext = new ExampleWindowVievModel(88005553535);
}
}
Но теперь я узнал о возможности задавать датаконтекст непосредственно через код разметки, что позволило дизайнеру отображать свойства экземпляра ExampleWindowViewModel в областях биндинга. Для меня это стало гораздо более удобным вариантом, так как нужно меньше писать и в случаях каких-либо несостыковок не гадать о том, правильно ли задан датаконтекст у элемента или нет. Разметка в таком случае даже запускаемые при создании VM асинхронные задачи учитывает. Собственно, из-за нежелания терять подобный функционал я наотрез отказываюсь задавать задаконтекст в коде-позади и пытаюсь найти решение проблемы в заголовке.
<Window x:Class="Namespace.ExampleWindow" бла-бла-бла Title="ExampleWindow">
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
...
</Window>
Как здесь передать что-то в параметры конструктора?
<vm:MainWindowViewModel/>
В документах от мелкомягких так ни не смог найти решения.
Дизайнер не предложил мне никаких свойств зависимостей, в которые можно вписать параметр, а делать собственные и связывать их с конструктором — это морока, которую делать не каждому охота.
d:DataContext="{d:DesignInstance {x:Type vm:MainWindowViewModel}}"– EvgeniyZ Sep 17 '20 at 15:00