从另一个xaml引用xaml对象';什么是代码隐藏?

从另一个xaml引用xaml对象';什么是代码隐藏?,xaml,silverlight-4.0,instance,code-behind,object-reference,Xaml,Silverlight 4.0,Instance,Code Behind,Object Reference,我必须根据“包括”我正在处理的xaml的网格的实际高度设置动态datapager页面大小。我需要从包含的XAML代码隐藏中访问这个网格,并且不断得到“需要对象引用”错误 以下是如何在“parent”Main.xaml文件中定义网格: <Grid x:Name="GridContent" MaxHeight="500" MinHeight="400" Grid.ColumnSpan="1" ScrollViewer.VerticalScrollBarVisibility="Auto" /&g

我必须根据“包括”我正在处理的xaml的网格的实际高度设置动态datapager页面大小。我需要从包含的XAML代码隐藏中访问这个网格,并且不断得到“需要对象引用”错误

以下是如何在“parent”Main.xaml文件中定义网格:

<Grid x:Name="GridContent" MaxHeight="500" MinHeight="400" Grid.ColumnSpan="1" ScrollViewer.VerticalScrollBarVisibility="Auto" />
这将返回有关GridContent的“需要对象引用”错误

我还尝试在Main.xaml.cs中创建GridContent的公共访问器,但当我从Page.xaml.cs调用它时,仍然会出现“需要对象引用”错误,这次是关于“baseProject.Main.gridContentAccessor.get”


我错过了什么?我怎样才能得到这个网格的实例呢?

看看VisualTreeHelper函数。
尝试使用调用VisualTreeHelper.GetParent(this)的递归函数,直到找到所需的对象。

如果有误解,我提前道歉,但我不相信这两个类之间存在实际的“父/子”关系。“Page.xaml”只是“Main.xaml”中定义的网格中包含的许多页面之一。因此,我提到Main.xaml是一个“父对象”,这可能比事实更加庸俗。一旦处理和呈现了xaml,您可以认为所有的用户控件都是“扁平化”的。main.xaml上的网格包含名为page.xaml的用户控件。因此,如果您一直在运行时反复调用GetParent,将上一次调用的结果作为参数传入,您最终应该会得到所需的main.xaml内容。尽管您也可以在任何FrameworkElement上调用“Parent()”方法,但我认为这非常简洁!但代码中有点重复。事实上,我找到了一个解决方案,不需要这个高度值:因为Page.xaml集成在这个“GridContent”网格中,所以我可以使用Page.xaml的“UserControl”元素的实际高度,它在逻辑上匹配GridContent的实际高度。这并不能完全回答这个问题(即“如何从另一个xaml文件访问元素”),因为我找到了一个替代解决方案,但我只想在这里通知您,我的问题已经解决了。
Grid gridContent = baseProject.Main.GridContent;