2010-12-19 56 views
1

在我看来,我有型MyChart两个图表控件:如何提高物业改变了两个用户控件的事件MVVM

MyChart1 MyChart2

图表用户控件有一个名为刷新按钮。点击按钮刷新其商品来源,并显示新数据。

在视图的ViewModel中,我有两个MyChart类型的属性,每个MyChart一个。

当我点击刷新按钮时,如何引发视图视图模型的RaisePropertyChanged事件?

+0

在视图模型处理的PropertyChanged容易够我不是silverlight专家,所以其他人可以给出更好的答案,但作为一个快速和简单的修复,你可以重新绑定属性到当前值。重新绑定可能会触发'PropertyChanged'事件。 – Basic 2010-12-19 03:40:43

回答

1

这不是MVVM的正确实现,因为您已将应用程序逻辑编码到View层。

标准方法是在您的ViewModel上有一个Command属性,然后将Button.Command绑定到ViewModel.Command。这将允许您在ViewModel中处理刷新,并为您提供一个地方来编写您需要编写的任何其他代码。

要回答你的问题,如果您使用的MVVM,在视图中显示的属性实际上存在于视图模型,所以你应该能够使用this.PropertyChanged += new PropertyChangedEventHandler(ViewModel_PropertyChanged);

+0

为什么你需要摆弄'PropertyChanged'处理程序呢?您只需将命令调用到_call_'PropertyChanged'两次,即绑定到图表的每个属性一次。 – AnthonyWJones 2010-12-19 10:08:24

+0

@Anthony:你是对的 - 但问题的一部分是“如何提升视图模型的RaisePropertyChanged事件”。 – 2010-12-19 22:37:33

+0

答案是你在Command实现的Execute方法中调用它。 – AnthonyWJones 2010-12-19 23:03:21