Wie zu binden eine variable mit einem textblock
Ich Frage mich, wie ich in der Lage wäre, zu binden, ein text-block an eine variable innerhalb meines C# - Klasse.
Im Grunde habe ich eine "Warenkorb" - variable in meine .cs-Datei. Innerhalb dieser Klasse Cart, die ich haben Zugriff zu den verschiedenen Summen.
Folgende ist, was ich für die Bindung, aber es scheint nicht zu binden, um die 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>
Was ist der richtige Weg, es zu tun? Nochmals vielen Dank für die Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie weiter wollen, dass die Textfelder, die automatisch aktualisiert werden, wenn Ihr Warenkorb-Klasse verpasst, Ihre Klasse implementieren muss, die
INotifyPropertyChanged
Schnittstelle:ElementName
im binding wird verwendet, um Verweise auf andere Steuerelemente, die nicht Variablen im code-behind. Referenz-Variablen im code-behind, müssen Sie die variable zuweisen eines SteuerelementsDataContext
Eigenschaft.Ersetzen Sie jedes vorkommen des folgenden code-Zeile :
mit :
Und in Ihrem Fenster Konstruktor-oder Load-Ereignis schreiben folgenden code :
Zwei Lösungen.
Erste Lösung:
Setzen die
cart
als DataSource im code behind:Binden und dabei wie folgt:
Zweite Lösung:
Binden Sie Ihr root-Kontrolle mit ein ElementName-Bindung, und Holen Sie den Wagen durch eine Eigenschaft dieses Steuerelements:
Namen Ihrer root/parent-control, wo Wagen ist ein Anwesen:
Binden Sie es wie folgt:
Bitte beachten Sie, dass die Karre muss eine Eigenschaft deines UserControl, und nicht ein Feld
Müssen Sie Ihre Klasse als Datenquelle für das Formular. Siehe auch diese Frage.