gpt4 book ai didi

c# - 使用参数化构造函数从标记设置 View 的 DataContext

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:31 30 4
gpt4 key购买 nike

我正在使用 MVVM(MVVM Light) 开发一个 wpf 应用程序。我的 View 有一个属性标记,它像这样在构造函数中传递到我的 View 模型。

DataContext = new ChartNewViewModel(Token);

我想使用标记从 xaml 设置我的数据上下文。对于所有那些具有默认无参数构造函数的 View 模型,我使用了这个

<Window.DataContext>
<viewModel:ChartNewViewModel></viewModel:ChartNewViewModel>
</Window.DataContext>

我不知道如何使用 xaml 在 vi​​ewmodel 的构造函数中传递参数。

最佳答案

XAML 2006 通过初始化文本对非默认初始化的支持有限。但是,ObjectDataProvider 可用于解决方法

给你

<Window.DataContext>
<ObjectDataProvider ObjectType="viewModel:ChartNewViewModel">
<ObjectDataProvider.ConstructorParameters>
<model:Token />
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
</Window.DataContext>

如果您使用的是 XAML 2009,那么您可以使用 x:Arguments 指令

例子

<Window.DataContext>
<viewModel:ChartNewViewModel>
<x:Arguments>
<model:Token />
</x:Arguments>
</viewModel:ChartNewViewModel>
</Window.DataContext>

x:Arguments 是仅来自 XAML 2009 的功能。

更多关于 x:Arguments

关于c# - 使用参数化构造函数从标记设置 View 的 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24653169/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com