La liaison de données à une variable de type chaîne de classe statique pour textBlock dans Phone 7?
Voici le code C#
public static class Global
{
public static string Temp
{
get
{
return temp;
}
set
{
temp = value;
}
}
public static string temp="100";
}
et voici le code xaml de la page d'accueil
<TextBlock Text="{Binding Path=Temp}" Grid.Column="1" Margin="34,47,32,49" Name="textBlockCheck" />
J'ai déclaré le datacontext de la page d'accueil.cs comme ça dans son constructeur:
this.DataContext= Global.Temp;
Mais il n'y a rien d'être affiché dans le textBlock. Merci d'avance pour l'aide.
OriginalL'auteur shoayb | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas se lier à une classe statique comme liaison nécessite une instance d'objet.
Vous pouvez, cependant, de les lier à des propriétés statiques d'une classe.
Vous pouvez utiliser la technique suivante si vous avez changé
Global
de ne pas être statique mais a laissé toutes ses propriétés statiques.En supposant que:
Alors, si vous définissez la suite de l'application de la ressource:
Puis dans votre page, vous pouvez simplement faire ce qui suit:
Cela va même vous donner intellisense sur le
Path
.Cela permet de vous lier à "global" variables statiques et encore quitter le datacontext libre de contenir tous les modèles que vous souhaitez lier à.
Salut Matt, la liaison de recevoir la mise à jour de la propriété statique? Je l'ai juste essayé, et il s'est avéré qu'il ne va PAS 🙁 je Suis un malentendu quelque chose?
Salut Matt, merci pour votre réponse. Je pense que j'ai été à l'aide de "Notifier Propriété a Changé". Cependant, j'ai trouvé une solution plus élégante: stackoverflow.com/questions/5306064/... . Voir ma réponse.
OriginalL'auteur Matt Lacey
Je pense qu'il n'est pas pris en charge à lier à la propriété statique de la
Essayer de faire de la classe singleton et de se lier à l'instance
cela pourrait aider:
http://social.msdn.microsoft.com/Forums/en-IE/wpf/thread/257a41be-8168-401c-a915-cdc44e195a3f
OriginalL'auteur Robert
Je pense, que
.Texte = Global.Temp
OriginalL'auteur isxaker
Vous pouvez utiliser:
<TextBlock Text="{Binding Path=.}" />
ou<TextBlock Text="{Binding}" />
OriginalL'auteur Rover
Merci à tous pour l'aide, le problème est résolu. En fait, vous créez une classe simple L
et dans la page où vous souhaitez lier le faire .cs fichier du constructeur de la classe de
et enfin dans .xaml version de votre fichier vous écris pour lier
où
dans la Liaison est en fait la Propriété de la Classe Maclasse.
🙂
Merci à tous!
DataContext
pour la liaison de la [view]modèle.OriginalL'auteur shoayb