Comment lier une variable avec un textblock
Je me demandais comment j'allais être en mesure de lier un bloc de texte à une variable dans ma classe C#.
Fondamentalement, j'ai un "panier" de la variable dans mon .cs fichier. Au sein de cette classe Cart j'ai accès aux différents totaux.
La suivante est ce que j'ai pour la liaison, mais il ne semble pas se lier à la variable...
<StackPanel
Width="Auto"
Height="Auto"
Grid.ColumnSpan="2"
Grid.Row="5"
HorizontalAlignment="Right">
<TextBlock
Name="Subtotal"
FontFamily="Resources/#Charlemagne Std"
FontSize="20"
Text="{Binding ElementName=cart, Path=SubTotal}">
</TextBlock>
<TextBlock
Name="Tax"
FontFamily="Resources/#Charlemagne Std"
FontSize="20"
Text="{Binding ElementName=cart, Path=Tax}">
</TextBlock>
<TextBlock
Name="Total"
FontFamily="Resources/#Charlemagne Std"
FontSize="20"
Text="{Binding ElementName=cart, Path=Total}">
</TextBlock>
</StackPanel>
Quelle est la façon correcte de le faire? Merci encore pour l'aide!
OriginalL'auteur Aero Chocolate | 2010-12-03
Vous devez vous connecter pour publier un commentaire.
Si vous voulez les zones de texte pour mettre à jour automatiquement lors de votre panier changements de classe, de votre classe doit implémenter l'
INotifyPropertyChanged
interface:OriginalL'auteur Michael Hilus
ElementName
dans la liaison est utilisé pour faire référence à d'autres contrôles, pas de variables dans le code derrière. Pour faire référence à des variables dans le code derrière, vous devez affecter cette variable pour un ContrôleDataContext
propriété.Remplacer chaque occurrence de la ligne de code suivante :
avec :
Et dans la Fenêtre de votre constructeur de la Charge ou de l'événement, écrire de code suivant :
OriginalL'auteur decyclone
Deux solutions..
Première solution:
Mettre le
cart
tant que source de données dans votre code derrière:Et se lier à elle comme suit:
Deuxième solution:
Se lier à la racine de votre commande avec un ElementName de liaison, et d'obtenir le chariot dans une propriété de ce contrôle:
Nom de la racine de votre parent de contrôle où le panier est un propery:
Se lier à elle comme ceci:
Veuillez noter que le Panier doit être une propriété de votre UserControl, et pas dans un champ de
OriginalL'auteur Arcturus
Vous devez définir votre classe en tant que source de données pour votre formulaire. Voir aussi cette question.
OriginalL'auteur Thorsten Dittmar