2010-03-31 6 views
2

J'ai une question simple. Bien sûr, il a beaucoup de réponses, mais je ne peux pas choisir les bons mots-clés pour google. Comment je peux lier une sous-classe à mon contrôle wpf? Par exemple: C'est ma classe.Lier une sous-classe à la propriété

public class SiteFieldInfo<T> 
    { 
     public string Name { get; set; } 
     public T Value { get; set; } 
     public List<string> PositiveXPathExpressions { get; set; } 
     public List<string> NegativeXPathExpressions { get; set; } 
    } 

    public class SiteInfo 
    { 
     public SiteFieldInfo<string> Author { get; set; } 
     public SiteFieldInfo<DateTime> Date { get; set; } 
     public SiteFieldInfo<string> Source { get; set; } 
    } 

Et je veux lier la propriété Valeur de SiteFieldInfo à la propriété Text du contrôle TextBox.

code C#:

stackPanel1.DataContext = SiteInfoInstance; 

code XAML:

<StackPanel Name="stackPanel1"> 
<TextBlock Text="Author" /> 
<TextBox Text="{Binding Path=Author.Value}" /> 
</StackPanel> 

Il ne fonctionne pas. Quelle est la bonne syntaxe ou des alternatives?


Désolé, ça marche bien. Je suis juste stupide. Comment fermer la question?

+0

Quand vous dites "Ça ne marche pas" - que voyez-vous? Y a-t-il des erreurs de liaison dans la fenêtre de sortie? –

Répondre

1

Etes-vous absolument certain que votre SiteInfoInstance est rempli avec des données? Je ne vois aucun problème avec la façon dont vos classes sont structurées ou avec votre XAML.

0

Est-ce que l'appel de la méthode ToString() comme ici dans XAML fonctionne? Je pensais que la liaison obtiendrait automatiquement la représentation sous forme de chaîne de la source de la liaison.

Questions connexes