Где создать параметрический ViewModel?

Я недавно параметризовал конструктора своего ViewModel. Перед этим я делал это в своем окне:

<Window.DataContext>
    <vm:MyViewModel />
</Window.DataContext>

Платформа инстанцировала ViewModel для меня.

Я знаю, что могу установить DataContext в коде, но я предпочел бы путь XAML, таким образом, разработчик может отобразить мои данные тестирования при разработке.

Действительно ли это возможно?

11
задан Kugel 3 August 2010 в 20:34
поделиться

2 ответа

Используйте 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>
20
ответ дан 3 December 2019 в 02:29
поделиться

Я понятия не имею, как передать параметр-конструктор, я думаю, что это невозможно (но было бы хорошо, если бы кто-то доказал, что я ошибаюсь).

Что вы можете сделать, так это установить свойства в вашей модели просмотра, как в

<Window.DataContext>
    <vm:MyViewModel  MyProperty="Hello" />
</Window.DataContext>
12
ответ дан 3 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: