【问题标题】:WP7 Access MainPage ElementsWP7 访问主页元素
【发布时间】:2011-04-08 07:38:51
【问题描述】:

我正在尝试制作一个简单的 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# 新手试图在他能走路之前跑!?)。

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

【问题讨论】:

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


    【解决方案1】:

    答案是您不应该这样做,因为这种级别的耦合可能会在未来导致重用,特别是测试方面的问题。

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

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

    【讨论】:

    • 谢谢马特!我按照您的建议创建了一些单独的全局属性 (outlined here),将它们设置在 MainPage 中,它们在 MyClass 中完美运行。感谢您的提示!
    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    相关资源
    最近更新 更多