有对象发送消息给MainPage
问题描述:
我有一个类Target
和一个静态属性,在另一个类中,被称为points
。每次用户点击目标时,我都想增加点数。我把points
放在不同的静态类中的原因是每个Target
对象都可以访问它。 问题在于显示点的文本块存在于MainPage中,而不是每个Target对象中。由于我无法将我的XAML绑定到静态属性,因此我怎样才能让每个Target对象以某种方式让MainPage知道它应该更新点文本块?感谢您的任何建议有对象发送消息给MainPage
答
您可以在这里完全应用MVVM模式。如果存在绑定到主窗口的静态ViewModel,则每次属性更改时都会发出通知,并且所有绑定的显示数据的窗口都将自动更新(重新绑定) 。
我会推荐检查Laurent Bugnion的MVVM Light框架。它为你做了很多这样的配件,所以你需要做的就是把零件放在一起并正确地绑定。
一些资源应该查一下您的情况:
- WPF Apps With The Model-View-ViewModel Design Pattern(仍适用于 的Silverlight作为methodoloogy)
- Model-View-ViewModel In Silverlight 2 Apps
如果需要样本,看一看here。
答
在同一名称空间内的类目标和AnotherClass.points?如果是这样,可能有以下帮助:
/* In Window class */
Window w = new Window();
/* function where Target get hit */
w = this;
/* code to update points */
w.textbox1.Text = AnotherClass.points.ToString();