2010-11-07 10 views
0

J'ai deux zones de texte, la première d'entre elles que j'ai liée à l'en-tête d'un élément de tabControl. Je l'ai fait dans le code derrière.La reliure ne fonctionne pas

Le problème est que la liaison ne réussit que la première fois.

XAML:

<StackPanel> 
    <TabControl x:Name="tabcontrol"> 
     <TabControl.Items> 
      <TabItem> 
      </TabItem> 
     </TabControl.Items> 
    </TabControl> 
    <TextBox Text="5" x:Name="txtbox"></TextBox> 
    <TextBox Text="dsfdf"></TextBox> 
</StackPanel> 
code

Derrière:

public partial class Window4 : Window 
{ 
     public Window4() 
     { 
     InitializeComponent(); 
     var b = new Binding { Mode = BindingMode.OneWay, Source = txtbox.Text }; 
     ((TabItem)tabcontrol.Items[0]).SetBinding(HeaderedContentControl.HeaderProperty, b); 
     } 
    } 

Répondre

0

Changez le Source au TextBox, et réglez l'Path à Text:

var b = new Binding { Mode = BindingMode.OneWay, Source = txtbox, Path = "Text" }; 
((TabItem)tabcontrol.Items[0]).SetBinding(HeaderedContentControl.HeaderProperty, b); 

Sinon, vous avez défini la source à la valeur actuelle de txtbox.Text, et aucune modification ne sera prise en compte car la source (la chaîne) ne prend pas en charge les notifications de modification.

+0

Chemin = new PropertyPath ("Texte"), mais merci !! – Erez

Questions connexes