XAML de la liaison de données à une variable globale?
Comment puis-je lier des zones de texte de Texte à une variable globale dans ma classe en XAML?
C'est pour Windows Phone.
Voici le code:
namespace Class
{
public partial class Login : PhoneApplicationPage
{
public static bool is_verifying = false;
public Login()
{
InitializeComponent();
}
private void login_button_Click(object sender, RoutedEventArgs e)
{
//navigate to main page
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
}
private void show_help(object sender, EventArgs e)
{
is_verifying = true;
}
}
}
Et je veux lier une zone de texte texte en "is_verifying".
Grâce.
OriginalL'auteur Travv92 | 2012-11-21
Vous devez vous connecter pour publier un commentaire.
Tout d'abord vous ne pouvez lier à des propriétés, vous devez ajouter un getter et setter.
Ensuite, vous pouvez soit définir le
DataContext
de votre formulaire à votre classe ici, et de le lier avec un simple:Ou créer une référence à votre classe dans les ressources de la forme et de la référence comme suit:
OriginalL'auteur Kevin DiTraglia
Vous ne pouvez pas se lier à un champ, vous aurez besoin de le faire d'une Propriété, et encore, vous n'avez pas à être notifié des changements, à moins que vous implémenter une sorte de mécanisme de notification, qui peut être atteint par la mise en œuvre de
INotifyPropertyChanged
ou en faisant de la propriété d'uneDependencyProperty
.Lorsque vous avez une propriété, vous pouvez généralement utiliser les
x:Statique
extension de balisage de se lier à elle.Mais contraignant à une propriété statique nécessite quelques trucs qui pourraient ne pas fonctionner dans votre cas, car ils nécessitent la création d'une instance fictive de votre classe ou de faire un singleton. Je pense également qu'au moins dans Windows phone 7
x:Static
n'est pas disponible. Donc, vous pourriez envisager de faire le bien une instance de la propriété, peut-être sur un autre ViewModel que vous pouvez ensuite définir comme unDataContext
.Je viens de découvrir qu'au moins WP7 ne prend pas en charge x:Statique. J'ai ajouté une alternative (et de l'OMI mieux) la solution à la fin de ma réponse. Le point sur INotifyPropertyChanged/DependencyProperty s'applique toujours à cela.
OriginalL'auteur Botz3000