gpt4 book ai didi

wpf - Josh Smith MVVM模式大问题

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

我正在使用Josh Smith THE MODEL-VIEW-VIEWMODEL (MVVM) DESIGN PATTER FOR WPF创建项目

但是有一个问题。相同的工作空间显示相同的操作。我的VIEW包含tabcontrol。创建2个或更多相同的工作区后,当我从任何工作区更改tabcontrol的选定索引时,其他相同的工作区tabcontrol显示相同的结果。

我在Josh Smith示例项目中经过测试。但是和我的项目一样。如果要显示。从here和MainWindowViewModel.cs下载Josh史密斯代码,更改以下代码

void ShowAllCustomers()
{
AllCustomersViewModel workspace = null;
this.Workspaces.FirstOrDefault(vm => vm is AllCustomersViewModel)
as AllCustomersViewModel;

if (workspace == null)
{
workspace = new AllCustomersViewModel(_customerRepository);
this.Workspaces.Add(workspace);
}

this.SetActiveWorkspace(workspace);
}


void ShowAllCustomers()
{
AllCustomersViewModel workspace = null;

workspace = new AllCustomersViewModel(_customerRepository);
this.Workspaces.Add(workspace);

this.SetActiveWorkspace(workspace);
}

然后运行代码并打开2个或更多 All Customer view并更改列表 View 的列顺序。所有打开的 all customer view显示相同的结果

如何解决这个问题

最佳答案

如果我可以在http://www.codeproject.com/KB/WPF/CinchV2_3.aspx上引用Cinch的创建者Sacha Barber,请参阅“WorkSpaces:特别说明”部分。听起来,您可能遇到相同的问题,但是我也在学习,所以我可能是错的。

“现在所有这些都是宏大的,但是不幸的是,WPF以TabControl的形式在我们的路径上引发了一些怪异。这是控件的一种 SCSS 。你们中的很多人都知道,在WPF中,TabControls VisualTree仅将所选项目保留在VisualTree。

这听起来对您不利吗?不,再想一想(尽管这只是使用DataTemplates时的一个问题,直接使用TabItem/View组合就可以了)。因此,我们有几个使用MeffedMVVM在TabControl中创建ViewModel的 View 。然后,我们更改选项卡,并猜测将丢弃什么 View ,并且当我们回到上一个TabItem时,因为我们正在使用 View 1st和MeffedMVVM,将为该 View 创建一个新的ViewModel。”

关于wpf - Josh Smith MVVM模式大问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974655/

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