访问Silverlight页面上的功能和控件

访问Silverlight页面上的功能和控件,silverlight,Silverlight,我是Silverlight的新手,我有一些问题。我已经想了好几个小时了 我有一个主页,等待来自服务器的数据包。当该数据包到达时,它将在模块中处理。根据数据包数据,模块处理操作。其中一些操作涉及主页上的子例程。我通过以下方式访问它们: Dim MainPage As MainPage = App.Current.RootVisual If strPacketData(1) = "0" Then MainPage.Do_Sign_In(True, strPacketData(2)) Else Mai

我是Silverlight的新手,我有一些问题。我已经想了好几个小时了

我有一个主页,等待来自服务器的数据包。当该数据包到达时,它将在模块中处理。根据数据包数据,模块处理操作。其中一些操作涉及主页上的子例程。我通过以下方式访问它们:

Dim MainPage As MainPage = App.Current.RootVisual
If strPacketData(1) = "0" Then
MainPage.Do_Sign_In(True, strPacketData(2))
Else
MainPage.Do_Sign_In(False, strPacketData(2))
End If
这个很好用

假设登录有效,则主页调用

Me.Content = New Page2
然后页面切换到第2页

问题是,当试图访问第2页上的sub和控件时,相同的代码不起作用

如果我尝试:

Dim Page2 As Page2 = App.Current.RootVisual
If strPacketData(1) = "1" Then
Page2.lblCreateError.Opacity = 100
End If
我无法将类型为“SLClient.MainPage”的对象强制转换为类型为“SLClient.Page2”

我从中得到的是App.Current.RootVisual设置为MainPage,但MainPage不应打开

我尝试将App.Current.RootVisual设置为第2页,但似乎没有任何效果

我希望这个问题是由于我对silverlight的无知造成的,并且有一个简单的解决方法

我想我需要做的是检测当前显示的页面,并操作该页面上的控件和函数\子例程


如果您有任何意见,我们将不胜感激。

好吧,我终于明白了。或者至少我想出了一个办法

在内存中创建页面后,我使用字典来存储这些页面的地址。我还修改了程序,使rootVisual成为自己的网格而不是页面。现在,网格将作为子级加载和清除页面


我不知道。。。Silverlight有点古怪。不管怎样,它现在可以工作了。

我知道你已经找到了一个解决方案,但是你的RootVisual是你的主页,其中有一个内容框架(导航控件),可以显示第2页,对吗?如果是这样,主页将始终是您的RootVisual。我所做的是在
ContentFrame\u Navigated
事件中,我将
e.content
保存到一个公共变量中,以便我始终知道当前显示的是哪个页面。是的,我想这会起作用。Silverlight快把我逼疯了。。。我记得我在想这有多容易。。。服务器应用程序!这将是最难的部分!它必须管理所有连接,处理所有数据库命令,并跟踪所有内容!但是不,到目前为止,服务器是最简单的部分。客户端所要做的就是接收数据包并显示数据。我从未想过有一天创建一个异步套接字类会比显示一个图像数组更容易。-好吧,很抱歉你的咆哮。谢谢你的回复-RW