我正在构建一个简单的财务记录保存应用程序。主窗口视图模型包含一个帐户列表。该视图显示此列表(在ListView中)以及显示有关当前所选帐户的详细信息的面板。
首先,我将详细信息面板和ListView的SelectedItem绑定到视图模型上的相同属性(类型为Account)。但是,我很快意识到细节面板需要绑定到AccountViewModel,而不是直接绑定到Account的实例。
提供此AccountViewModel的方法有多种:
还有其他选择吗?你推荐哪种选择?
谢谢你, 本
答案 0 :(得分:1)
这就是我的所作所为:
为主视图模型提供一个列表 AccountViewModels而不是 帐户清单。
这将在很多方面为您提供良好的服务。我总是发现,最终,由于某种原因,我需要以某种方式扩充我的模型以支持View,所以这些天我只是通过创建ViewModels开始。
你可以说这将是一个更好的选择,它涉及更少的代码。在我看来,更少的代码总是等于更少的错误。
答案 1 :(得分:0)
我喜欢这个选项
然后您可以将所选项目绑定到视图模型和详细信息窗格。这可以独立于视图进行测试。当您创建帐户列表时,您还可以创建帐户视图模型列表,因此当您更改选择时,您无需创建任何内容。通过这种方式,您的viewmodel是全面的,代表整个屏幕,而不仅仅是viewModel的浮动位。
答案 2 :(得分:-1)
到目前为止,我最喜欢的想法是原始帖子中的#3为两个原因: