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/