2009-06-11 4 views
4

Wie macht man das in C#?Programmatische Datenbindung

<TextBlock Text={Binding MyProperty}/> 

die Datacontext Angenommen wird eine Klasse von Typ eingestellt MyClass

Antwort

6

Vorausgesetzt, dass Ihr TextBlock ist _textBlock genannt:

var binding = new Binding("MyProperty"); 
BindingOperations.SetBinding(_textBlock, TextBlock.TextProperty, binding); 
+1

abgeordnet. Ich habe den Code verwendet, den Kent hier in LOB-Apps beschreibt, und es funktioniert perfekt. Achten Sie darauf, die Mode-Eigenschaft des Bindungsobjekts festzulegen, wenn das Ziel der Bindung TwoWay standardmäßig nicht unterstützt. – Mark

+0

Wann nennst du das? im Konstruktor? ist es wichtig? – Jose

+0

Sie nennen es, wenn Sie wollen, dass eine Verbindung zwischen der Steuerung und den Daten besteht. Im Allgemeinen ist das im Konstruktor, aber es könnte auch anderswo sein. –

2

Ganz einfach:

<TextBlock x:Name="txt"/> 

// C# 
txt.SetBinding(TextBox.TextProperty, "MyProperty"); 

ein Binding-Objekt erstellen und es zu SetBinding geben, wenn Sie mehr Kontrolle über die Bindung wollen.