Bei der ApplicationBar handelt es sich um eine Shell-Komponente, für die lediglich ein Wrapper besteht und verwendet werden kann. Dies spiegelt sich darin wider, dass es sich nicht um ein DependencyObject handelt. Dies bringt zwei Nachteile mit sich:
- Datenbindungen mit der ApplicationBar und den darin verwendeten Elementen ist nicht möglich.
- Die Elemente befinden sich nicht im Baum der Silverlight-Elemente, wodurch auch ein Zugriff per Name auf dieselben nicht möglich ist.
Um nun auf diese Elemente Zugriff zu haben (im Speziellen nun für die ApplicationBarIconButton-Elemente) muss man sich über die Eigenschaft ApplicationBar der zugehörigen PhoneApplicationPage behelfen. Das dahinter liegende Objekt enthält eine Auflistung Buttons, welche die Schaltflächen enthält.
Um also beispielsweise auf die erste Schaltfläche zuzugreifen, kann folgender Code verwendet werden:
ApplicationBarIconButton button = (ApplicationBar.Buttons[0] as ApplicationBarIconButton);
if (button != null)
button.Text = "Changed";
Dies kann nun auf alle Schaltflächen angewandt werden.
Der Zugriff auf die Schaltflächen der ApplicationBar wird hauptsächlich dann benötigt, wenn eine Lokalisierung durchgeführt werden soll. Da eine Datenbindung nicht möglich ist, bleibt der direkte Zugriff der einzige Weg.