ApplicationBarIconButton ist immer null

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:

#f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
#f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
ApplicationBarIconButton button = (ApplicationBar.Buttons[0] #0000ff">as ApplicationBarIconButton);

#f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">#0000ff">if (button != #0000ff">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.

Veröffentlicht von Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen