Ya que el ApplicationBar no es un DependencyObject y no forma parte del árbol visual, findElement no encuentra elementos de la ApplicationBar con x: Name . Los miembros del conjunto serán nulos.
 
Debido a esto, puede ser mejor para inicializar el ApplicationBar utilizando el código de abajo y mantener las referencias a los elementos que necesitan ser cambiados dinámicamente.
 
Observe en el código de abajo, que la referencia SaveEdit se mantiene y SaveEdit.IsEnabled se actualiza con cada pulsación de tecla en el TextBox.

 

#region AppBar

private ApplicationBarIconButton SaveEdit;

private void InitAppBar()

{

ApplicationBar appBar = new 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(newUri("images/appbar.close.rest.png"UriKind.Relative));

CancelEdit.Click += new EventHandler(OnClick_Cancel);

//CancelEdit.Text = Strings.Cancel_button;

appBar.Buttons.Add(CancelEdit);

 

ApplicationBar = appBar;

}

#endregion AppBar

       

 

 

void itemName_KeyDown(object sender, KeyEventArgs e)

{

bool isNameValid = itemName.Text.Length != 0;

           

if ((e.Key == Key.Enter) && isNameValid)

{

SaveAndExit();

}

           

SaveEdit.IsEnabled = isNameValid;

}

 

Original article source: http://richoncodedev.wordpress.com/2010/05/26/updating-applicationbariconbutton-dynamically/