【发布时间】:2014-12-10 11:22:48
【问题描述】:
我正在学习 WPF 和 MVVM,到目前为止我很喜欢使用它。我想要一种没有代码隐藏的纯粹主义风格。
我的软件很简单:我有一堆代表联系人的 POCO 对象。该视图的左侧有一个包含所有联系人的列表框。通过在列表框中选择联系人,您可以在右侧看到详细信息,例如姓名。这完美地工作,列表框绑定到具有联系人列表的视图模型,并且视图模型还有一个名为 CurrentContact 的属性,详细信息视图中的字段绑定到该属性。 (Listbox 的 SelectedItem 绑定到 CurrentContect 属性,因此当您在列表中选择联系人时它会自动更改。
问题是:我想要一种添加新联系人的好方法,最好将“CurrentContact”设置为 null,这会导致详细信息中的字段为空,然后我可以填写并按保存。我的第一个选择是在列表框的底部添加一个“新”项目,但事实证明这很难做到,因为列表框绑定到列表中没有这样一个空对象的视图模型。相反,我在列表底部添加了一个按钮,将 CurrentContact 设置为 null。我需要这个按钮来更改我的视图模型上的属性,但我想不出在这里使用绑定的方法。我在我的视图模型中实现了一个命令,它将属性设置为空。这可行,但似乎是一种荒谬的解决方法,对于如此简单的事情来说,这是大量的样板代码。这真的是唯一干净的方法吗?
【问题讨论】: