Wpf 在何处创建参数化ViewModel?

Wpf 在何处创建参数化ViewModel?,wpf,mvvm,viewmodel,Wpf,Mvvm,Viewmodel,我最近已将ViewModel的构造函数参数化。在此之前,我在我的窗口中做了以下操作: <Window.DataContext> <vm:MyViewModel /> </Window.DataContext> 框架为我实例化了ViewModel 我知道我可以在代码中设置DataContext,但我更喜欢XAML方式,这样设计器可以在设计时显示我的测试数据 这可能吗?我不知道如何传递构造函数参数,我认为这是不可能的(但如果有人证明我错了,那就太好了

我最近已将ViewModel的构造函数参数化。在此之前,我在我的窗口中做了以下操作:

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

框架为我实例化了ViewModel

我知道我可以在代码中设置DataContext,但我更喜欢XAML方式,这样设计器可以在设计时显示我的测试数据


这可能吗?

我不知道如何传递构造函数参数,我认为这是不可能的(但如果有人证明我错了,那就太好了)

您可以在ViewModel上设置属性,如中所示

<Window.DataContext>
    <vm:MyViewModel  MyProperty="Hello" />
</Window.DataContext>

如果要指定构造函数参数,请使用:

<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>

字符串参数
42

如果参数是类类型?如果参数是自定义类类型,将如何在xaml中写入?