XAML中的Silverlight控件在运行时为null

XAML中的Silverlight控件在运行时为null,silverlight,initialization,nullreferenceexception,Silverlight,Initialization,Nullreferenceexception,我已经创建了一个silverlight应用程序,上面有一个DeepEarth地图控件。这是我的基本XAML <Grid x:Name="LayoutRoot" > <!-- Map Control --> <DeepEarth:Map x:Name="map" Margin="0,0,0,0"> <Controls:CoordControl VerticalAlignment="Bottom" HorizontalAlig

我已经创建了一个silverlight应用程序,上面有一个DeepEarth地图控件。这是我的基本XAML

<Grid x:Name="LayoutRoot" >
    <!-- Map Control -->
    <DeepEarth:Map x:Name="map" Margin="0,0,0,0">
        <Controls:CoordControl VerticalAlignment="Bottom" HorizontalAlignment="Right" />
        <Controls:ScaleControl VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="12,12,12,40" />
    </DeepEarth:Map>
    <Controls:NavControl x:Name="navControl" >
        <StackPanel Orientation="Horizontal">
            <Button x:Name="MyButton" Content="Hi" Click="MyButton_Click"></Button>
        </StackPanel>
    </Controls:NavControl>
</Grid>

这意味着要对MyButton做一些事情,连接一些事件等等。问题是MyButton在运行时为空。怎么会?层次结构中的其他控件不为null。发生了什么事?

当我退出测试版时,它就停止了。

页面上的所有内容都正确呈现了吗?是的,按钮是可见的,单击它似乎起作用了。我的按钮中的发送者不就是按钮吗?所以你可以只做Button myLocalButton=(Button)sender,然后做你需要做的事情?这不是我真正想要的。长期目标是在那里有一个StackPanel,我将根据当前的应用程序状态动态添加命令按钮。要做到这一点,我需要有一个非空的引用来控制。你能按照常见问题解答以危险形式表达你的问题吗?这将帮助我们为大家提供一个更清晰的答案。Silverlight vWhateverIWasWorkingOn当时处于测试阶段啊,好的!!我以为你的意思是你退出了你的应用测试;-)。谢谢
public Page()
{
    InitializeComponent();
    new ButtonActionWithCancel(MyButton, new CreatePointCommand(map));
}
void MyButton_Click(object sender, RoutedEventArgs e)
{
    if (MyButton == null) throw new Exception("Wat?");
}