使用事件textchanged禁用/启用应用程序栏button在运行时(Windows Phone)

在这部分代码中是事件TextChanged来启用应用程序栏中的button。

C#:

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="
" 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="
" 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="
" FontSize="21.333" Height="63" VerticalAlignment="Bottom"/> 

Solutions Collecting From Web of "使用事件textchanged禁用/启用应用程序栏button在运行时(Windows Phone)"

在XAML中设置时,应用程序栏不支持一些基本功能。 您必须通过代码创建栏和按钮和/或菜单项。

下面是一个例子,您可以创建栏并添加控件。 随后可以从代码访问控件:

 //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) { } 

当所有这些完成后,您通过代码创建了自己的ApplicationBar 。 现在,您可以从代码中更改属性,如下所示:

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

这只是一个例子。 在TextChanged事件中,您也可以访问ApplicationBar控件。 在这些事件中,您可以放置​​上面的代码来更改ApplicationBarButton。 希望这个清除你的东西! 更多的阅读和信息:

  • ApplicationBar类
  • PhoneApplicationPage.ApplicationBar属性
  • 如何动态更改应用程序栏图标按钮和菜单项