gpt4 book ai didi

c# - 关于 ViewModel 管理的问题(设计时与运行时)

转载 作者:太空狗 更新时间:2023-10-29 18:03:36 25 4
gpt4 key购买 nike

我有一个相当基本的 WPF UI,用户请求会导致在我的 TabControl 中打开一个新选项卡。 TabControl 绑定(bind)到 ObservableCollection<ViewModelBase>

我将 ViewModel 实例添加到此集合中,相应选项卡的内容将基于如下模板显示:

    <DataTemplate DataType="{x:Type viewModels:UserUploadsViewModel}">
<userControls:UserUploads />
</DataTemplate>

现在假设在 UserUploads 控件内部,我想在 XAML 中连接一个 ViewModel 以帮助设计,如下所示:

<UserControl x:Class=".....UserUploads"
.....
DataContext="{Binding Source={StaticResource ViewModelLocater},
Path=UserAdministrationViewModel}">

此属性将在运行时返回一个包含实时服务的 ViewModel,并在设计时返回一个包含模拟数据的 ViewModel。

问题:此 XAML 是否会干扰我将 TabItems 内容绑定(bind)到 ViewModel 实例并依赖上面的 dataTemplate 呈现正确 View 的操作?如果是这样,是否有办法让这两个概念一起工作?

最佳答案

有一种更简单的方法可以做到这一点。有一个 DesignTimeUserAdministrationViewModel 并在构造函数中用静态数据填充它,并在 UserControl 中将其引用为:

<UserControl d:DataContext="{d:DesignInstance designTimeVMs:DesignTimeUserAdministrationViewModel, IsDesignTimeCreatable=True}">

通过这种方式,您可以将设计时测试数据绑定(bind)到 d:DataContext 并将运行时实时数据绑定(bind)到实际的 DataContext。更多详情 here .

关于c# - 关于 ViewModel 管理的问题(设计时与运行时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6696174/

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