Comment lier WPF zone de texte à un propperty qui est le membre de la fenêtre principale de l'application
J'ai un champ privé
private static Double myValue;
dans l'application classe MainWindow. Et là, dans la classe MainWindow) j'ai défini une propriété
public static Double MytValue
{
get { return myValue; }
}
Dans la structure de la classe MainWindow j'ai une zone de texte. Je suis dans le besoin de se lier à la MytValue de la propriété. En XAML j'écris:
<TextBox Name="tbxMyValue" Grid.Row="1" Grid.Column="2" TextAlignment="Center"
Text="{Binding Path=MyValue}" Width="Auto" Margin="10,0,10,15" IsEnabled="True" />
Mais il n'a pas d'effet. Je ne vois rien dans la zone de texte tout en mavaleur variable a une valeur. Pourquoi? S'il vous plaît aider moi.
Est-il "Mavaleur" ou "MytValue"?
J'sac de votre pardon - c'est Mavaleur bien sûr.
J'sac de votre pardon - c'est Mavaleur bien sûr.
OriginalL'auteur user1688773 | 2012-10-11
Vous devez vous connecter pour publier un commentaire.
J'aime le DataContext dans la section Fenêtre
mais pas assez agréable pour un +1 ?
+1ned 🙂 @Blam.
OriginalL'auteur paparazzo
Vous devez définir la
DataContext
derrière la Fenêtre pour que la liaison fonctionneIl y a deux couches d'une application avec WPF: la couche d'INTERFACE utilisateur et la couche de données.
De la couche de Données pour une application commence comme
null
, et vous pouvez définir à l'aide de laDataContext
propriété.Chaque fois que vous faites une base de liaison dans WPF, vous sont opposables à l'
DataContext
. DoncText="{Binding Path=MyValue}"
est en train de dire "Obtenir leMyValue
propriété de l'actuelDataContext
".Vous pouvez simplement définir le
DataContext
dans votre code derrière:Ou vous pouvez utiliser un
RelativeSource
de liaison à dire WPF pour obtenir leMyValue
bien de quelque part d'autre, comme pour lui dire de l'obtenir le plus proche de la Fenêtre qu'il trouve lors de la navigation dans leVisualTree
:J'ai fait un article sur mon blog à propos de la
DataContext
que je vous recommande de lire si vous êtes nouveau à WPF etDataContext
: Qu'est-ce que cette "DataContext" dont vous parlez?Félicitations, belle réponse!
OriginalL'auteur Rachel
Ce n'est pas la façon dont il fonctionne. La liaison aux propriétés statiques; {Binding Source={x:Static locale:Demande.Mavaleur}}
Noter que votre terrain doit être bien & publique. Si vous voulez aller avec votre solution, vous devez définir le DataContext {RelativeSource Self}.
OriginalL'auteur Erti-Chris Eelmaa
Dans le fichier MainWindow.xaml.cs dans le constructeur d'ajouter cette ligne:
après
InitializeComponent();
OriginalL'auteur kmatyaszek