【发布时间】:2012-03-18 13:15:05
【问题描述】:
我正在编写一个应该非常基本的 Windows Phone 7 应用程序。
我有一个视图模型(“MainViewModel”),其中包含我创建的一个类(“EntrySheet”),其中包含一个 ObservableCollection(我将其称为“Entries”)。
我的 MainPage.xaml 包含一个数据绑定到 App.ViewModel.EntrySheet.Entries 的列表框。这非常适合显示列表,并且向 ObservableCollection 添加条目会反映在 ListBox 中。
但是,我无法理解的是将选定条目“传递”到更新页面的正确方法(这将允许用户更改条目上的字段:姓名、金额、日期,无论何时导航回 MainPage 将反映在 ListBox 中)。
我猜我期望在 ObservableCollection 上有一个“SelectedItem”,我可以导航到更新页面,该页面将能够使用类似:App.ViewModel.EntrySheet.Entries.SelectedItem。
我非常感谢在这方面的任何帮助,也欢迎对如何更好地构建我的应用提出建设性的批评。
【问题讨论】:
-
有人对此有任何意见吗?任何帮助将不胜感激。
-
我想出了一种可能的解决方案,但感觉……很乱。我添加了我的类 'Entry' 的静态实例和一个名为 selectedIdx 的整数 当用户“点击”列表中的项目时,我将 App.Entry 设置为点击的列表项目,设置选定的索引,然后导航到编辑页面。在编辑页面中,当用户单击“保存”时,我可以使用所选索引更新 App.ViewModel 中的正确条目。这似乎不是“正确”的解决方案,但如果其他人都这样做,我会学会接受它!
标签: windows-phone-7 data-binding listbox observablecollection