如何在WPF中将参数从构造函数参数传递给ViewModel构造函数

时间:2019-03-07 00:36:11

标签: wpf mvvm

public partial class DenomDetailPage : Page
    {
        public DenomDetailPage(IEnumerable<TbTrans002> t)
        {
            InitializeComponent();
            this.DataContext = new DenomDetailViewModel(t);
        }
    }

我的简单测试代码位于最上面。 但是,我想在xaml文件中设置datacontext。

<Page.DataContext>
    <viewModels:DenomDetailViewModel/>
</Page.DataContext>
上面的代码上的

发生错误。如何修复我的代码。

1 个答案:

答案 0 :(得分:0)

这可以在XAML2009中通过x:Arguments完成,但是BAML不支持XAML2009功能,因此在WPF中,您必须改为使用ObjectDataProvider:

<Page.DataContext>
    <ObjectDataProvider d:IsDataSource="True" ObjectType="{x:Type viewmodel:YourClass}">
        <ObjectDataProvider.ConstructorParameters>
            <sys:String>Constructor parameter 1</sys:String>
            <sys:String>Constructor parameter 2</sys:String>
            <sys:Double>3</sys:Double>
            <sys:String>etc</sys:String>
        </ObjectDataProvider.ConstructorParameters>
    </ObjectDataProvider>
</Page.DataContext>