2009-09-22 7 views
2

J'ai des problèmes de liaison dans wpf/xaml. Avoir ce simple fichier:WPF Liaison simple à une propriété d'objets

<Window x:Class="test.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Grid> 
     <TextBlock Height="21" Foreground="Black" Margin="74,98,84,0" Name="textBlock1" VerticalAlignment="Top" Text="{Binding MyText}" /> 
    </Grid> 
</Window> 

Où je veux lier le contenu du bloc de texte à ma propriété "MyText". Mon code ressemble à ceci:

public partial class Window1 : Window 
    { 
     public Window1() 
     { 
      InitializeComponent(); 
     } 

     public string MyText 
     { 
      get { return "This is a test"; } 
     } 
    } 

Dans l'ensemble très simple, mais quand je commence le textblock n'a pas de contenu - howcome?

+0

MISE À JOUR: Je ne même pas un point d'arrêt à la propriété – H4mm3rHead

Répondre

2

vous avez besoin d'un nom d'élément dans votre reliure:

<Window ... x:Name="ThisWindow"...> 

     <TextBlock ... Text="{Binding MyText, ElementName=ThisWindow}" /> 
0

Si je me souviens de ma WPF syntaxe de liaison correctement, je crois que votre expression de liaison doit lire le texte = "{Binding Path = MonTexte}"

+0

que Essayé, pas de chance, toujours vide ... ... Text = "{Binding Path = MyText} "/> – H4mm3rHead

+0

Essayé source, juste rendu le texte" MyText "qui est le nom de la propriété ... Edit: la solution avec un nom dans la reliure travaillé – H4mm3rHead

+0

Merci pour le recyclage, ça fait longtemps depuis que j'ai étudié WPF :) – jturinetti

-1

Il y a un certain nombre de façons d'accomplir ceci. Probablement le plus facile pour quelque chose d'aussi simple que cette forme est:

public Window1() 
{ 
    InitializeComponent(); 
    this.DataContext = this; 
} 
Questions connexes