none
Applicationbar Buttons "dynamisch"? RRS feed

  • Frage

  • Hallo!

    Ich arbeite in meiner App mit einer Loginmöglichkeit. Hierzu möchte ich einen Button in der ApplicationBar abhängig von dem aktuellen Loginstatus (Boolean true -> eingeloggt) verfügbar machen. Ist man eingeloggt, so sollte der Button verschwinden oder wenigstens disabled werden.

    Ich verfolge derzeit folgenden Ansatz:

    In der NavigatedTo Methode der betroffenen Seite frage ich den Login-Status mit einer if-Klausel ab und rufe dann diese Codezeile auf:

    AppBarButton.IsEnabled = false;
    

    AppBarButton ist vom Typ ApplicationBarIconButton.
    Das Problem ist hier aber, dass ich eine NullReferenceException bekomme, wenn diese Zeile aufgerufen wird.

    Was kann ich gegen diese Exception tun bzw. wie kann ich die ApplicationBar anders "verändern"?

    Donnerstag, 29. März 2012 13:52

Antworten

  • Hi,

    ja - das ist leider nicht immer selbsterklärend.

    Aus diesem Grund mache ich immer folgenden Trick:

    (ApplicationBar.Buttons[0] as ApplicationBarIconButton).IsEnabled = true;

    Ich greife somit nicht direkt auf das Objekt zu, sondern hole mir die Referenz. Damit sollte das Problem dann auch Geschichte sein.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Als Antwort markiert Praschi Dienstag, 3. April 2012 09:51
    Freitag, 30. März 2012 11:06
  • Hallo Praschi,

    es sollte reichen wenn du das benötigte Using für die Klasse einbindest:

    using Microsoft.Phone.Shell;


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    • Als Antwort markiert Praschi Dienstag, 3. April 2012 09:51
    Dienstag, 3. April 2012 09:42

Alle Antworten

  • Hi,

    ja - das ist leider nicht immer selbsterklärend.

    Aus diesem Grund mache ich immer folgenden Trick:

    (ApplicationBar.Buttons[0] as ApplicationBarIconButton).IsEnabled = true;

    Ich greife somit nicht direkt auf das Objekt zu, sondern hole mir die Referenz. Damit sollte das Problem dann auch Geschichte sein.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Als Antwort markiert Praschi Dienstag, 3. April 2012 09:51
    Freitag, 30. März 2012 11:06
  • Hallo!

    Bei deiner Lösung habe ich leider ein Problem. "ApplicationBarIconButton" wird nicht gefunden. Muss ich sonst noch auf etwas achten?

    Dienstag, 3. April 2012 09:39
  • Hallo Praschi,

    es sollte reichen wenn du das benötigte Using für die Klasse einbindest:

    using Microsoft.Phone.Shell;


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    • Als Antwort markiert Praschi Dienstag, 3. April 2012 09:51
    Dienstag, 3. April 2012 09:42
  • Hat funktioniert.

    Danke! :-)

    Dienstag, 3. April 2012 09:51