Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight MVVM绑定似乎不起作用_Silverlight_Mvvm_Binding_Uiview - Fatal编程技术网

Silverlight MVVM绑定似乎不起作用

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

构建我的第一个SL MVVM应用程序(Silverlight4 RC)时遇到了一些我不理解的问题

有WPF背景,我不知道这里发生了什么:

ViewModel有几个属性,其中一个称为SelectedRecord。这是一个get only属性,定义如下:

    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模式,您使用的是哪一种?我没有使用任何预先制作的框架。每当有我没有遇到的需求出现时,我都会阅读博客来体验一下如何去做!你完全正确!在我打开线程之后,我也意识到了这一点!非常感谢!你完全正确!在我打开线程之后,我也意识到了这一点!非常感谢!