ItemsControl ItemTemplate Binding

Dans WPF4.0, j'ai une classe qui contient d'autres types de classes de propriétés (combinaison de plusieurs types de données pour l'affichage). Quelque chose comme:

public partial class Owner
{
     public string OwnerName { get; set; }
     public int    OwnerId   { get; set; }
}

partial class ForDisplay
{
    public Owner OwnerData { get; set; }
    public int Credit { get; set; }
}

Dans ma fenêtre, j'ai un ItemsControl avec la suivante (coupées pour plus de clarté):

<ItemsControl ItemsSource={Binding}>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
          <local:MyDisplayControl 
                OwnerName={Binding OwnerData.OwnerName}
                Credit={Binding Credit} />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Je puis obtenir une collection d'afficher des informations à partir de la couche de données, et définir la DataContext de la ItemsControl à cette collection. Le "Crédit" de la propriété s'affiche correctement, mais le OwnerName propriété n'. Au lieu de cela, je reçois une erreur de liaison:

Erreur 40: BindingExpression chemin
erreur: 'OwnerName biens non trouvé
sur l '"objet" "ForDisplay'
(HashCode=449124874)'.
BindingExpression:Path=OwnerName;
DataItem='ForDisplay'
(HashCode=449124874); élément cible
est "TextBlock (Nom=txtOwnerName');
la propriété target est "Texte" (type
'String')

Je ne comprends pas pourquoi c'est d'essayer de regarder pour le OwnerName propriété dans le ForDisplay classe, plutôt que par le Propriétaire de la classe à partir de la ForDisplay OwnerData propriété.

Modifier
Il semble que cela a quelque chose à faire avec l'aide de la commande personnalisée. Si je lier les mêmes propriétés d'un TextBlock, qu'ils fonctionnent correctement.

<ItemsControl ItemsSource={Binding}>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
          <StackPanel>
              <local:MyDisplayControl 
                        OwnerName={Binding OwnerData.OwnerName}
                        Credit={Binding Credit} />
              <TextBlock Text="{Binding OwnerData.OwnerName}" />
              <TextBlock Text="{Binding Credit}" />
          </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

source d'informationauteur Wonko the Sane