WP7访问MainPage元素

时间:2011-04-08 07:38:51

标签: c# class xaml inheritance windows-phone-7

我正在尝试制作一个简单的Windows Phone 7 Silverlight应用。 MainPage.xaml包含一些UI元素,而单独的C#类MyClass.cs包含一些代码。

我的问题是MyClass无法访问MainPage中包含的任何内容(即,它不知道UI元素或C#方法存在)。

如果我尝试继承MainPage,应用程序会编译,但拒绝运行:

public class MyClass : MainPage
{
   // No good
}

如果我尝试this solution,则会收到InvalidCastException错误:

public class MyClass
{
  // Also no good
  MainPage m = (MainPage)Application.Current.RootVisual;
}

我的问题是:如何从单独的课程中访问MainPage

MainPage.xaml.cs中,我可以简单地使用myElement.Property等。但是,这在MyClass中是不可能的,但我不确定原因。

我想有一个简单的答案,我错过了,但我真的不确定它是什么(... C#newbie试图在他走路之前跑步!?)。

提前感谢您提出的任何建议。

1 个答案:

答案 0 :(得分:2)

答案是你不应该这样做,因为这种耦合程度可能导致将来在重用和特别是测试方面出现问题。

您可以查看具有单独的全局视图模型,该模型具有您需要的信息(属性)并绑定到主视图的视图模型。

如果您需要您的类在视图上调用方法,那么您可以查看消息传递系统或类似信息。