Disable / Enable Application Panel Runtime Button with Text Changing Events (Windows Phone)

There is a TextChanged event in this part of the code to enable a button in the application bar.

FROM#

private void Textbox_TextChanged(object sender, EventArgs e) { ApplicationBarIconButton btn_guardar = ApplicationBar.Buttons[0] as applicationBarIconButton; if (!string.IsNullOrEmpty(txt_nom_usuario.Text) && !string.IsNullOrEmpty(txt_edad_usuario.Text) && !string.IsNullOrEmpty(txt_peso_usuario.Text)) { btn_guardar.IsEnabled = true; } else btn_guardar.IsEnabled = false; } 

XAML:

 <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar Mode="Default" IsVisible="True"> <shell:ApplicationBarIconButton x:Name="btn_guardar" IconUri="/icons/appbar.save.rest.png" Text="Guardar" Click="btn_guardar_Click" IsEnabled="False" /> <shell:ApplicationBarIconButton x:Name="btn_atras" IconUri="/icons/appbar.back.rest.png" Text="AtrΓ‘s" Click="btn_atras_Click" /> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar> <TextBlock x:Name="lbl_ingresanombre" Height="39" Margin="60,28,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" Width="248" FontSize="29.333" FontFamily="{StaticResource Helvetica}"><Run Text="Ingresa "/><Run Text="tu nombre"/></TextBlock> <TextBox x:Name="txt_nom_usuario" Height="63" Margin="47,58,69,0" TextWrapping="Wrap" Text="&#xa;" FontSize="21.333" VerticalAlignment="Top" IsEnabled="True" /> <TextBlock x:Name="lbl_edad" Height="38" Margin="60,117,0,0" TextWrapping="Wrap" Text="Ingresa tu edad" VerticalAlignment="Top" FontSize="29.333" HorizontalAlignment="Left" FontFamily="{StaticResource Helvetica}"/> <TextBox x:Name="txt_edad_usuario" InputScope="TelephoneLocalNumber" Height="63" TextWrapping="Wrap" Text="&#xa;" FontSize="21.333" Margin="47,147,69,0" VerticalAlignment="Top" MaxLength="3" /> <TextBlock x:Name="lbl_peso" Height="42" Margin="60,0,0,178" TextWrapping="Wrap" Text="Peso" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="74" FontSize="29.333" d:LayoutOverrides="HorizontalAlignment" FontFamily="{StaticResource Helvetica}"/> <TextBox x:Name="txt_peso_usuario" InputScope="TelephoneLocalNumber" Margin="47,0,69,125" TextWrapping="Wrap" Text="&#xa;" FontSize="21.333" Height="63" VerticalAlignment="Bottom"/> 
0
c # windows windows-phone-7 runtime
source share
1 answer

The application panel does not support some basic functions if it is installed in XAML. You will need to create a panel and buttons and / or menu items through the code.

Here is an example of how you can create a panel and add controls to it. Then the controls can be accessed later from the code:

 //button var appBarButton = new ApplicationBarIconButton { IconUri = new Uri("/Images/YourImage.png", UriKind.Relative), Text = "click me" }; appBarButton.Click += new EventHandler(appBarButton_Click); //menu item ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem { Text = "a menu item" } appBarMenuItem.Click += new EventHandler(appBarMenuItem_Click); //application bar //Note that this is not a variable declaration //'ApplicationBar' is a property of 'PhoneApplicationPage' ApplicationBar = new ApplicationBar(); ApplicationBar.Buttons.Add(appBarButton); ApplicationBar.MenuItems.Add(appBarMenuItem); //the events private void appBarButton_Click(object sender, EventArgs e) { } private void appBarMenuItem_Click(object sender, EventArgs e) { } 

When all this is done, you created your own ApplicationBar through the code. Now you can change the properties of the code, for example:

 var theButton = (ApplicationBarIconButton)ApplicationBar.Buttons[0]; if(someCondition) { theButton.IsEnabled = true; } else { theButton.IsEnabled = false; } //or shorter: theButton.IsEnabled = someCondition 

This is just an example. In TextChanged events, you can also access ApplicationBar controls. In these events, you can put the code above to modify the ApplicationBarButton. Hope this clears you up! More reading and information:

+1
source share

All Articles