2009-07-10 10 views
0

J'ai un problème avec la façon d'organiser la disposition de l'écran pour mes données.Problème de mise en page WPF

I sont un objet A avec des propriétés A1 et A2 et peut contenir un objet B.

objet B a des propriétés B1, B2, B3 et une collection d'une ou plusieurs de l'objet C.

Object C contient des propriétés C1, C2 et C3

Je veux que la mise en page soit

A1 A2 

ou

A1 A2 B1 B2 B3 C1 C2 C3 

ou

A1 A2 B1 B2 B3 C1 C2 C3 

         C1 C2 C3 

J'ai essayé le XAML suivant n'a pas pu obtenir, mais l'objet C de se produire plus d'une fois. J'ai créé un DataTemplate

  <TextBlock Text="{Binding Path=A1}" Grid.Column="0" /> 
    <TextBlock Text="{Binding Path=A2}" Grid.Column="1" /> 
      <StackPanel Orientation="Horizontal" Name="B" DataContext="{Binding Path=B}" Grid.Column="2"> 
     <TextBlock Text="{Binding Path=B1}" /> 
     <TextBlock Text="{Binding Path=B2}" /> 
     <TextBlock Text="{Binding Path=B3}" /> 
     <StackPanel Orientation="Horizontal" Name="C" DataContext="{Binding Path=C}"> 
      <TextBlock Text="{Binding Path=C1}" /> 
      <TextBlock Text="{Binding Path=C2}" /> 
      <TextBlock Text="{Binding Path=C3}" /> 
     </StackPanel> 
    </StackPanel> 
     </Grid> 

et utiliser un ListView en utilisant le DataTemplate pour afficher les données, mais une seule ligne de données C est toujours affichée. Des suggestions sur la façon d'obtenir la mise en page souhaitée?

John

+0

partie désolé du modèle manquant John

+0

Veuillez fournir un exemple de code complet. Ce que vous entendez par "utiliser un listview en utilisant le datatemplate" n'est pas du tout clair, puisque le code que vous donnez est probablement un modèle pour un objet de type A, mais vous ne mentionnez aucune liste d'objets A. –

Répondre

0

On peut supposer que (si toutes les hypothèses que je devais faire en raison de manque de clarté de la question sont corrects), vous voulez ceci:

<TextBlock Text="{Binding Path=A1}" Grid.Column="0" /> 
    <TextBlock Text="{Binding Path=A2}" Grid.Column="1" /> 
     <StackPanel Orientation="Horizontal" Name="B" DataContext="{Binding Path=B}" Grid.Column="2"> 
      <TextBlock Text="{Binding Path=B1}" /> 
      <TextBlock Text="{Binding Path=B2}" /> 
      <TextBlock Text="{Binding Path=B3}" /> 
      <ItemsControl ItemsSource="{Binding Path=C}"> 
       <ItemsControl.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation="Vertical" /> 
        </ItemsPanelTemplate> 
       </ItemsControl.ItemsPanel> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" Name="C"> 
          <TextBlock Text="{Binding Path=C1}" /> 
          <TextBlock Text="{Binding Path=C2}" /> 
          <TextBlock Text="{Binding Path=C3}" /> 
         </StackPanel> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
    </StackPanel> 
+0

Un grand merci .. n'était pas sûr de ce que l'information supplémentaire était nécessaire. – John