带框架和页面的Silverlight:如何访问已实例化页面的引用集合?

带框架和页面的Silverlight:如何访问已实例化页面的引用集合?,silverlight,caching,navigation,frame,Silverlight,Caching,Navigation,Frame,我在Silverlight中的主页有一个框架,在其中我可以显示多个页面中任意一个的内容,在它们之间导航。所有页面都具有NavigationCacheMode=“Required”属性分配,因此所有页面都由导航设备缓存。 如果导航系统缓存我导航到的每个页面的实例,这意味着它将这些实例存储在某种列表或集合中。如何访问已实例化页面的引用集合 我的目标是简化:假设我已经导航到A和B页,我想从A页访问B页上的控件 谢谢。缓存所需的页面会得到维护,但是导航服务在私人词典中。没有向公众提供对词典内容的访问 如

我在Silverlight中的主页有一个框架,在其中我可以显示多个页面中任意一个的内容,在它们之间导航。所有页面都具有NavigationCacheMode=“Required”属性分配,因此所有页面都由导航设备缓存。 如果导航系统缓存我导航到的每个页面的实例,这意味着它将这些实例存储在某种列表或集合中。如何访问已实例化页面的引用集合

我的目标是简化:假设我已经导航到A和B页,我想从A页访问B页上的控件


谢谢。

缓存所需的页面会得到维护,但是
导航服务在私人词典中。没有向公众提供对词典内容的访问

如果您真的想这样做,那么您可以自己管理页面的加载和卸载事件,这些事件用于在一些公共静态字典中添加/删除页面实例


然而,我认为让一个页面直接操纵另一个页面的控件并不是一个好的设计模式。更好的做法是创建一个公共静态类,通过该类,页面可以进行通信,而不需要真正了解彼此。

缓存所需的页面会得到维护,但导航服务会在专用字典中进行。没有向公众提供对词典内容的访问

如果您真的想这样做,那么您可以自己管理页面的加载和卸载事件,这些事件用于在一些公共静态字典中添加/删除页面实例


然而,我认为让一个页面直接操纵另一个页面的控件并不是一个好的设计模式。最好是创建一个公共静态类,通过该类,页面可以进行通信,而不需要真正了解彼此。

您是对的,这不是一个好的设计模式,我正在尽可能地避免它。到目前为止,使用静态类中的字段,并从每个页面的Loaded()事件中查看这些字段,一切都很好。然而,很多时候,我很好奇是否有一个替代方案是可能的(甚至看起来更糟)。这有助于我的决策机制。谢谢。你说得对,这不是一个好的设计模式,我正在尽量避免它。到目前为止,使用静态类中的字段,并从每个页面的Loaded()事件中查看这些字段,一切都很好。然而,很多时候,我很好奇是否有一个替代方案是可能的(甚至看起来更糟)。这有助于我的决策机制。谢谢