WPF绑定到集合并使用MVVM将新项添加到集合

时间:2010-06-08 18:16:52

标签: wpf data-binding mvvm

这可能是一个简单的问题......

我有一个窗口,其中包含员工列表框和一组用于显示或输入数据的文本框。员工列表框绑定到我的ViewModel中的可观察集合,该集合从数据库中读取。

现在我有一个SelectedEmployee属性,文本框被绑定,所以如果用户点击现有员工,它会显示现有属性。

现在我想从输入到文本框中的值添加新员工。我的想法是用户输入值,然后单击“添加员工”。

但我对文本框绑定的内容感到困惑。我还没有员工对象,并且显示我需要绑定到SelectedEmployee的现有员工。

我想改变用户需要点击“添加新员工”的工作流程输入数据然后点击“保存”,但我想我遇到了同样的问题。

我认为我遗漏了一些明显的东西,或者我的ViewModel不正确以支持我的工作流程。

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:1)

我建议通过单击“添加员工”,创建一个新的员工对象并将其分配给SelectedEmployee。

现在我考虑一下,也许最好创建一个员工对象,将其添加到您的集合中,并将SelectedEmployee指向新创建的对象。

答案 1 :(得分:0)

您可能会发现WPF Application Framework (WAF) BookLibrary 示例应用程序非常有用。它与您描述的应用程序非常相似,但它使用的是书籍而不是员工。 : - )

答案 2 :(得分:0)

您是否默认跳转到创建新员工状态?如果你不想先按某个按钮,这可能会有所帮助。

您可以将Collection放入IEditableCollection,让Employee对象实现IEditableObject。

然后用户按下一个按钮,该按钮调用IeditableCollection的addnew()方法(让我们称之为IEC),它将向处于编辑模式的集合中添加一个新项目。

IEC.CancelNew将从集合中再次删除该对象 IEC.CommitNew将永久添加对象并停止编辑。

您还可以访问EditItem,CommitEdit和CancelEdit来编辑已存在的对象。

这样就消除了当对象首先没有得到正确的信息然后编辑正确的信息时必须保存对象的麻烦。

相关问题