ApplicationBarIconButton is null
windows-phone-7
Solution
I remember running into this issue before: there's an explanation here. An easy workaround is just to instantiate it in code-behind rather than xaml (like here).
private ApplicationBarIconButton SaveEdit;
private void InitAppBar()
{
ApplicationBar appBar = new ApplicationBar();
SaveEdit = new ApplicationBarIconButton(new Uri("images/appbar.check.rest.png", UriKind.Relative));
SaveEdit.Click += new EventHandler(OnClick_Check);
SaveEdit.Text = Strings.Save_button;
appBar.Buttons.Add(SaveEdit);
ApplicationBarIconButton CancelEdit = new ApplicationBarIconButton(new Uri("images/appbar.close.rest.png", UriKind.Relative));
CancelEdit.Click += new EventHandler(OnClick_Cancel);
CancelEdit.Text = Strings.Cancel_button;
appBar.Buttons.Add(CancelEdit);
ApplicationBar = appBar;
}
Problem
Why is my ApplicationBarIconButton null? ``` <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" x:Name="appBar"> <shell:ApplicationBarIconButton x:Name="appbarSave" IconUri="/Icons/appbar.save.rest.png Text="Save" IsEnabled="False" Click="appbarSave_Click" /> </shell:Application Bar> </phone:PhoneApplicationPage.ApplicationBar> ``` The appBarSave object is null, and trying this: ``` Initialize Component(); appbarSave.IsEnabled = true; ``` Results in a NullReferenceException. The only place the object works is in the click event (if I enable it): ``` private void appbarSave_Click(object sender, EventArgs e) { ApplicationBarIconButton button = (ApplicationBarIconButton)sender; button.IsEnabled = false; } ``` I would really like to be able to start the save button as disabled and enabled it later.