gpt4 book ai didi

WPF/MVVM - View 模型是否应该保持不变而只是模型发生变化?

转载 作者:行者123 更新时间:2023-12-02 00:36:15 25 4
gpt4 key购买 nike

我有点怀疑什么是“正确的方法”。

我有一个应用程序包含 visual studio 等概念,所以我将用它来解释:

我有一个“解决方案” View 模型和一个背后的模型。 View 模型显示在“资源管理器”中。

我可以在“未加载解决方案”和“已加载解决方案”之间切换。

最后是我的问题 :-) :

我应该保留我的 View 模型对象并让它反射(reflect)我加载了一个新的“解决方案对象”吗?或者我应该创建一个新的 View 模型对象并让 View 绑定(bind)到新对象吗?

最佳答案

您的 Viewmodel 包含与 UI 关联的任何数据的状态,这些数据不在模型中更远的地方

我回答像您这样的问题的一种方法是考虑我希望在 UI 中有什么行为以及什么需要绑定(bind)到某些状态信息。或者,换句话说,每当我想编写一些代码来显示或隐藏 UI 元素时,请考虑如何将其映射到 bool 变量。

因此,获取只有在加载模型时才可见的大块 UI。它们的可见性可能绑定(bind)到 Viewmodel IsSolutionLoaded 中的 bool 属性。

也许你想在处理过程中禁用某些东西,你可以有一个属性 IsCompiling。我将这种方法与属性 NotRunningthreadedProcessing 一起使用,如下所示,当 Viewmodel 中存在同步对象时,我可以禁用控件。

CNTL_WhiteLevel.SetBinding(ProgressBar.IsEnabledProperty, 
new Binding("NotRunningThreadedProcessing"));

// and the C++/CLI property concerned
property bool NotRunningThreadedProcessing {
bool get()
{
return mThreadedCommandSyncher == nullptr;
}
};

关于WPF/MVVM - View 模型是否应该保持不变而只是模型发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4488002/

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