gpt4 book ai didi

c# - 在 C# 中,如何在 ViewModel 的 View 上设置 DataContext?

转载 作者:行者123 更新时间:2023-11-30 14:20:40 25 4
gpt4 key购买 nike

我正在尝试围绕 MVVM 进行思考。我理解了很多,但我很难掌握一个方面:设置 DataContext

我想显示带有特定对象的 View 。用户无法决定什么是可见的,因此我需要在代码中创建 View 。然后,我想将 View 的 DataContext 设置为一个对象(用于绑定(bind))。我试图不为此将代码放在 View 中,但 View.LayoutRoot.DataContext 不是公开的。

我错过了什么?

试图避免这种情况:

public class View
{
public View(object dataContext)
{
InitializeComponent();
LayoutRoot.DataContext = dataContext;
}
}

像这样:

public class ViewModel
{
...

public UIElement GetView()
{
UIElement *element = new View();
element.LayoutRoot.DataContext = element;
return element;
}
}

最佳答案

不要忘记 View 应该知道 ViewModel,而不是相反。

因此,在您的情况下,将代码放入 ViewModel 中以创建 View 并不是最好的方法。

约什·史密斯的 article在 MVVM 上有一个 section将 View 应用于 ViewModel。他建议使用 WPF 的数据模板在 XAML 中选择您的 View 。

关于c# - 在 C# 中,如何在 ViewModel 的 View 上设置 DataContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044365/

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