Silverlight MVVM绑定似乎不起作用
构建我的第一个SL MVVM应用程序(Silverlight4 RC)时遇到了一些我不理解的问题 有WPF背景,我不知道这里发生了什么: ViewModel有几个属性,其中一个称为SelectedRecord。这是一个get only属性,定义如下:Silverlight MVVM绑定似乎不起作用,silverlight,mvvm,binding,uiview,Silverlight,Mvvm,Binding,Uiview,构建我的第一个SL MVVM应用程序(Silverlight4 RC)时遇到了一些我不理解的问题 有WPF背景,我不知道这里发生了什么: ViewModel有几个属性,其中一个称为SelectedRecord。这是一个get only属性,定义如下: public Culture SelectedRecord { get { return culturesView.View.CurrentItem as Culture; } } 如您所见,它获取CollectionViewSour
public Culture SelectedRecord {
get { return culturesView.View.CurrentItem as Culture; } }
如您所见,它获取CollectionViewSource(称为CultureView)的当前值。因此,如果我选择了一个区域性,SelectedRecord(直接从CollectionViewSource中获取一个值)将如预期的那样。(实际上有一个datagrid控件绑定到CollectionViewSource,因此可以更改所选项目)
嗯。现在来看风景。有几个视图可以访问此ViewModel,特别是有一个视图显示前面提到的SelectedRecord属性的值(我们称之为EditView)。要显示此EditView,有一个按钮(其命令属性已绑定到ViewModel中的ICommand),该按钮(第一次)按预期运行
这意味着:
第一次尝试:我选择一条记录,切换到EditView,结果:显示所选记录值(如预期!!)
第二次尝试:切换回datagrid,选择另一条记录,切换到EditView,结果:再次显示上一条显示记录的值!!!为什么
首先,我认为SelectedRecord没有设置正确的值,但我错了:它有正确的值!所以它应该被显示
我错过了什么?在WPF中,这将起作用
提前感谢当CurrentItem值发生更改时,选择了Record的ViewModel必须调用RaisePropertyChanged(“SelectedRecord”),因此绑定到它的任何视图都会收到有关更改的通知 当CurrentItem值更改时,已选择了Record的ViewModel必须调用RaisePropertyChanged(“SelectedRecord”),因此绑定到它的任何视图都会收到有关更改的通知 至少有4种不同的框架可以帮助提供MVVM模式,您使用的是哪一种?我没有使用任何预先制作的框架。每当有我没有遇到的需求出现时,我都会阅读博客来体验一下如何去做!至少有4种不同的框架可以帮助提供MVVM模式,您使用的是哪一种?我没有使用任何预先制作的框架。每当有我没有遇到的需求出现时,我都会阅读博客来体验一下如何去做!你完全正确!在我打开线程之后,我也意识到了这一点!非常感谢!你完全正确!在我打开线程之后,我也意识到了这一点!非常感谢!