2010-12-02 6 views
21

J'ai ItemsControl qui est lié à la collection de type étudiant. À l'intérieur du ItemTemplate J'ai un TextBox qui utilise IValueConverter pour faire des calculs personnalisés et de la logique. Je veux passer l'objet Student réel au convertisseur de valeur, à la place une propriété de celui-ci. Comment puis je faire ça? Voici un exemple de mon code.WPF transfère l'objet de liaison parent au convertisseur

<ItemsControl ItemsSource="{Binding StudentList}"> 
          <ItemsControl.ItemTemplate> 
           <DataTemplate> 
            <TextBlock Text="{Binding Name}" /> 
            <TextBlock Text="{Binding ????, Converter={StaticResource MyConverter}}" /> 
           </DataTemplate> 
          </ItemsControl.ItemTemplate> 
</ItemsControl> 

Dans le code Je possède ce

public class MyValueConverter : IValueConverter 
{ 
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      // I want 'value' to be of type Student. 
      return null; 
     } 
} 

Répondre

34

Vous pouvez laisser le chemin. De cette façon, vous obtenez à l'objet réel lié à.

<TextBlock Text="{Binding Converter={StaticResource MyConverter}}"/> 

ou si vous voulez être explicite à ce sujet:

<TextBlock Text="{Binding Path=., Converter={StaticResource MyConverter}}"/> 
+3

Merci, je vais me nuire maintenant. –

+2

Eh bien, ce n'est pas immédiatement évident. Vous pourriez marquer ceci comme réponse si cela a aidé. :) En passant, en utilisant {Binding Path =.} Vous obtenez le même résultat. – Botz3000

+0

J'ai dû attendre 9 minutes avant que je puisse l'accepter :) –

Questions connexes