gpt4 book ai didi

c# - 如何基于 DataTemplate 的 DataContext 对象创建 ViewModel?

转载 作者:行者123 更新时间:2023-12-03 10:30:22 25 4
gpt4 key购买 nike

我使用 MVVM 已经有一段时间了,这个问题(如果是问题的话)一直让我感到困惑。

我有一个 ItemsControl 绑定(bind)到我的 MainViewModel 中的集合

View 模型

public class MainViewModel : ViewModelBase
{
public ObservableCollection<string> Names { get; set; }
}

XAML
<ItemsControl ItemsSource="{Binding Names}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<view:NameView />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

每个的 DataContext 属性都是字符串类型(直接绑定(bind)到模型),但是如果我希望将 DataContext 绑定(bind)到基于该属性的 ViewModel 怎么办。我将如何实例化 ViewModel 并为其提供模型(字符串)。

我希望这是有道理的。

最佳答案

为什么不执行以下操作?

public ObservableCollection<NameViewModel> Names { get; set; }

这似乎有点奇怪,但 AFAIK 并没有明确禁止一个虚拟机知道其他虚拟机。

在您使用 DI 进行 VM 分辨率的情况下,显然您的设计必须进行调整。例如,您可以创建一个 NamesView这是一个带有公共(public) DependencyProperty 的 UserControl类型 IEnumerable<string> .然后, NamesView的 ViewModel 绑定(bind)到这个 DP...

关于c# - 如何基于 DataTemplate 的 DataContext 对象创建 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6537694/

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