gpt4 book ai didi

c# - 通过 WPF 掌握 MVVM

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:03 27 4
gpt4 key购买 nike

我刚收到一些有关使用 wpf、c# 的 MVVM 的设计/实现问题。我只是想掌握 MVVM,如果有人能证实我的想法,我正在徘徊,在我的应用程序中,我需要一名员工、一个部门和一家公司。所以换句话说,我有一个员工模型和一个相应的员工 ViewModel。现在,当用户单击 New Employee 时,会弹出一个窗口,其中包含 4 个东西、2 个组合框、员工姓名字段和一个提交按钮。现在我主要关注的是如何管理 2 个组合框,一个用于公司,一个用于部门?

现在我还有两个模型,分别用于公司和部门以及 View 模型,因为我需要能够添加新的公司或部门。

所以我的第一个问题归结为我是在员工 View 模型中使用公司和部门模型,还是将下拉框绑定(bind)到公司或部门的单独 View 模型?如果是这样的话,如果以第二种方式完成,我将如何获得组合框的详细信息?

我的第二个问题是,如果您将数据网格绑定(bind)到 EmployeeListViewModel,如果 employeelistviewmodel 中的列表发生任何更改,该数据网格是否会自动更新,或者我是否必须调用重新检查列表的函数,或者我是否必须重新绑定(bind)吗??

任何帮助都会很棒 :)

谢谢大家

最佳答案

不要将员工 View 模型视为员工的模型。将其视为员工 View 的模型。因此,将出现在员工 View 中的所有内容都需要出现在 View 模型中 - 包括填充该 View 中的组合框所需的任何内容 - 因此将有一个 Companies 属性和那些组合框的 ItemSource 属性将绑定(bind)到的 Departments 属性。

您可能拥有公司和部门的 View 模型,它们将支持用于显示/修改这些对象的 View 。这通常是一个与在组合框项目中显示这些对象的描述完全不同的问题。 (但并非总是如此 - 例如,如果组合框项目需要在它们绑定(bind)到的项目更改时更新,您将需要将它们绑定(bind)到支持属性更改通知的 View 模型。)

就您的第二个问题而言,如果您有一个 ItemsControl,其 ItemsSource 绑定(bind)到 View 模型对象的集合,只要这些 View 模型支持更改通知(这是实现 View 模型的主要原因之一),并存储在支持更改通知的集合(如可观察集合)中,保持 ItemsControl 同步自动发生。

关于c# - 通过 WPF 掌握 MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931178/

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