Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

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
C# Windows Phone 7-从类访问主页UI控件_C#_Silverlight_Windows Phone 7_Dispatcher - Fatal编程技术网

C# Windows Phone 7-从类访问主页UI控件

C# Windows Phone 7-从类访问主页UI控件,c#,silverlight,windows-phone-7,dispatcher,C#,Silverlight,Windows Phone 7,Dispatcher,我需要从另一个类访问MainPage.xaml.cs的控制。如何访问它?问题是为什么?根据您的体系结构,有几种方法: 您可以做的第一件事是使您的主页成为单例。这是有道理的,因为实际上你也只有一个主页,但我不喜欢单例,这会使你的组件耦合,你的设计变得很难进行单元测试 或者,您可以将主页的接口传递到类中。如果您只通过了接口,那么您就有机会不费吹灰之力地进行单元测试。大概是这样的: public interface IMainView { void MethodOnMainPage(); }

我需要从另一个类访问MainPage.xaml.cs的控制。如何访问它?

问题是为什么?根据您的体系结构,有几种方法:

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

或者,您可以将主页的接口传递到类中。如果您只通过了接口,那么您就有机会不费吹灰之力地进行单元测试。大概是这样的:

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();
   }
}