Я создал приложение silverlight с элементом управления картой DeepEarth. Вот моя база XAMLУправление Silverlight в 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>
У меня есть класс поведения, который я создал, который я хочу, чтобы прикрепить к кнопке
public Page()
{
InitializeComponent();
new ButtonActionWithCancel(MyButton, new CreatePointCommand(map));
}
void MyButton_Click(object sender, RoutedEventArgs e)
{
if (MyButton == null) throw new Exception("Wat?");
}
Это означало, чтобы сделать некоторые вещи в MyButton, подключить некоторые события и вещи. Проблема в том, что MyButton имеет значение null во время выполнения. Как так? Другие элементы управления в иерархии не являются нулевыми. Что происходит?
все верно показано на странице? –
Да, кнопка видна и нажимает, похоже, работает – mcintyre321
Не будет ли отправитель в MyButton_Click быть кнопкой? Таким образом, вы можете просто сделать Button myLocalButton = (Button) отправителя, а затем сделать то, что вам нужно? – mattmanser