Я недавно параметризовал конструктора своего ViewModel. Перед этим я делал это в своем окне:
<Window.DataContext>
<vm:MyViewModel />
</Window.DataContext>
Платформа инстанцировала ViewModel для меня.
Я знаю, что могу установить DataContext в коде, но я предпочел бы путь XAML, таким образом, разработчик может отобразить мои данные тестирования при разработке.
Действительно ли это возможно?
Используйте ObjectDataProvider, если вы хотите указать параметры конструктора:
<Window.DataContext>
<ObjectDataProvider ObjectType="vm:MyViewModel"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ObjectDataProvider.ConstructorParameters>
<sys:String>A string parameter</sys:String>
<sys:Int32>42</sys:Int32>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
</Window.DataContext>
Я понятия не имею, как передать параметр-конструктор, я думаю, что это невозможно (но было бы хорошо, если бы кто-то доказал, что я ошибаюсь).
Что вы можете сделать, так это установить свойства в вашей модели просмотра, как в
<Window.DataContext>
<vm:MyViewModel MyProperty="Hello" />
</Window.DataContext>