Windows Phone 7 - 从类访问 MainPage UI 控件

发布于 2024-11-16 04:35:20 字数 49 浏览 3 评论 0原文

我需要从另一个类访问 MainPage.xaml.cs 的控制权。我怎样才能访问它?

I need to access control of MainPage.xaml.cs from another class. How can I access it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单调的奢华 2024-11-23 04:35:20

问题是为什么?有几种方法,具体取决于您的体系结构:

您可以做的第一件事是使您的 MainPage 单例。这是有道理的,因为实际上您也只有一个主页,但我不喜欢单例,它会使您的组件耦合,并且您的设计变得难以进行单元测试。

或者,您可以将 MainPage 的接口传递到您的类中。如果你只通过了接口,那么你就有机会进行单元测试而不会遇到太多麻烦。像这样的东西:

public interface IMainView
{
   void MethodOnMainPage();
}

public class MainPage : IMainView
{
}

public class MyClass 
{
   private IMainView _view;

   public MyClass(IMainView view)
   {
      _view = view;
   }

   private void SomeEventHappened() 
   {
      _view.MethodOnMainPage();
   }
}

The question is why? There are a couple of approaches, depending on your architecture:

First thing you can do is to make your MainPage singleton. It makes sense because you only have one Main Page in reality too, but I don't like singletons, and it makes your components coupled and your design becomes hard to unit test.

Alternatively, you can pass an interface of your MainPage into your class. If you only pass the interface, you then have the chance to do unit testing without too much trouble. Something like this:

public interface IMainView
{
   void MethodOnMainPage();
}

public class MainPage : IMainView
{
}

public class MyClass 
{
   private IMainView _view;

   public MyClass(IMainView view)
   {
      _view = view;
   }

   private void SomeEventHappened() 
   {
      _view.MethodOnMainPage();
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文