2010-09-15 19 views
5

Sto sviluppando un'applicazione WP7 e l'applicazione deve modificare l'icona di un pulsante sulla barra dell'applicazione dato lo stato di una richiesta. ho provato:Cambia barra delle applicazioni buttonicon a runtime

if (App.Servers[index].ServerState == "Enabled") 
{ 
    DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.stop.rest.png"); 
} 

else 
{ 
    DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.transport.play.rest.png"); 
} 

Questo non mi dà un errore nel codice, ma non può compilare .... eventuali suggerimenti per fare questo è apprezzato :)

grazie

risposta

11

ApplicationBar è un controllo speciale che non si comporta come altri controlli Silverlight (vedere Peter Torr's post on the subject). Una delle conseguenze è che i nomi forniti in XAML ai pulsanti della barra delle applicazioni generano campi in code-behind che sono sempre nulli.

Suppongo che nel tuo caso il campo btnStart in DetailsAppBar sia impostato su null, e quindi provando a impostare la proprietà IconUri, viene generata una eccezione NullReferenceException.

Per accedere a un pulsante in una barra dell'applicazione, è necessario fare riferimento al relativo indice a base zero nell'elenco dei pulsanti. Per esempio, il codice seguente restituisce un riferimento al terzo pulsante nella barra app:

button = (IApplicationBarIconButton)ApplicationBar.Buttons[2]; 
+0

sì ho appena trovato fuori :) grazie –

8

capito ...

((ApplicationBarIconButton)ApplicationBar.Buttons[2]).IconUri = new Uri("/AppBar/appbar.stop.rest.png",UriKind.Relative); 

ha fatto il trucco :)

Problemi correlati