【发布时间】:2010-03-20 21:11:45
【问题描述】:
构建我的第一个 SL MVVM 应用程序 (Silverlight4 RC) 并遇到一些我不明白的问题。
有 WPF 背景,我不知道这里发生了什么:
ViewModel 有几个属性,其中一个称为 SelectedRecord。这是一个只能获取的属性,定义如下:
public Culture SelectedRecord {
get { return culturesView.View.CurrentItem as Culture; } }
如您所见,它获取 CollectionViewSource(称为culturesView)的当前值。因此,如果我选择一种文化,则 SelectedRecord(直接从 CollectionViewSource 中获取一个值)按预期进行。 (其实CollectionViewSource绑定了一个datagrid控件,所以可以改变选中项)
好的。现在到视图。有几个视图可以访问这个 ViewModel,特别是有一个显示上述属性 SelectedRecord 的值(我们称之为 EditView)。为了显示这个 EditView,有一个按钮(它的 Command 属性绑定到 ViewModel 中的 ICommand),它(第一次)按预期工作。
这意味着:
第一次尝试:我选择一条记录,切换到 EditView,结果:显示选定的记录值(如预期的那样!!)。
第二次尝试:切换回datagrid,选择另一条记录,切换到EditView,结果:之前显示的记录的值再次显示!!!为什么??
首先我认为 SelectedRecord 没有设置正确的值,但我错了:它具有正确的值!所以应该显示出来!?
我错过了什么?在 WPF 中这会起作用!!
提前致谢
【问题讨论】:
-
至少有 4 种不同的框架有助于交付 MVVM 模式,您使用的是哪一种?
-
我没有使用任何预制的。每当出现我没有遇到的要求时,我都会阅读博客以了解操作方法!
标签: silverlight mvvm binding uiview