gpt4 book ai didi

wpf - 创建 MVVM 的模型部分

转载 作者:行者123 更新时间:2023-12-04 22:19:30 26 4
gpt4 key购买 nike

我正在开发一个应用程序,这是我第一次尝试使用 MVVM。阅读了一些内容后,我想我可能误解了模型中的内容。

我的应用程序现在所做的就是发出获取一些数据的请求,显示它,允许用户编辑它,并在进行更改时保存它。

这是我当前设置的示例。我读了一些员工数据,它返回员工组(“经理”、“副总裁”等)。每个组都包含一个人员列表。我创建了一个界面来表示组:

public interface IEmployeeGroup : INotifyPropertyChanged
{
bool IsDirty { get; set; }
string GroupName { get; set; }
ObservableCollection<IPerson> People { get; set; }
}



public interface IPerson : INotifyPropertyChanged
{
bool IsDirty { get; set; }
string PersonName { get; set; }
int Id { get; set; }
}

然后我创建具体的 EmployeeGroup 和 Person 类来实现这些接口(interface)。这就是他们所做的一切,公开指定的属性。

这就是我所有的模型。

我的 View 模型实现了以下接口(interface):

public interface IEmployeeGroupsViewModel
{
ICommand AddEntryCommand { get; }
ICommand SaveCommand { get; }

ObservableCollection<IEmployeeGroup> EmployeeGroups { get; set; }
ObservableCollection<IPerson> People { get; set; }
}

View 模型进行调用以获取实际数据,创建 EmployeeGroup 和 Person 对象,然后将它们返回到 View 绑定(bind)到的属性中。当用户想要保存他的更改时, View 模型会调用以保留更改。

我是不是在我的 View 模型中放了太多东西,而应该放在模型中?现在我的模型什么都不做,它们只是代表对象的类。

如果我在这里偏离轨道,有人可以给我一些建议吗?例如,我将如何更改上述场景?

谢谢。

最佳答案

您的方法没有任何问题。如果映射模型属性需要格式化,您可以或者自由地从 View 模型中公开映射模型属性,或者如果不需要进行任何更改,您可以直接从 View 模型中公开模型。

MVVM 是关于可测试性,而不是模式纯度。只要您正在做的事情有效,您以后总是可以重构。

关于wpf - 创建 MVVM 的模型部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560290/

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