2009-07-10 14 views
0

データの画面レイアウトを整理する方法に問題があります。WPFレイアウトの問題

Iは特性A1とA2とオブジェクトAを有し、オブジェクトB.

オブジェクトBは、特性B1、B2、B3及びオブジェクトCの1以上

オブジェクトのコレクションを持って含まれていてもよいですC私はレイアウトが

A1 A2 

又は

なりたい特性C1、C2及びC3

が含ま

A1 A2 B1 B2 B3 C1 C2 C3 

または

A1 A2 B1 B2 B3 C1 C2 C3 

         C1 C2 C3 

私は、次のXAMLを試みたが、オブジェクトCが複数回発生することができませんでした。私は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> 

及びデータを表示するようにするDataTemplateを使用して、リストビューを使用してを作成したが、Cデータの一方のみ行が今まで表示されています。どのように希望のレイアウトを得るための任意の提案? (私が原因質問の不足明瞭にしなければならなかったすべての仮定が正しければ)

ジョン

+0

ごめん一部を John

+0

完全なコード例を提供してください。与えたコードはおそらくタイプAのオブジェクトのテンプレートなので、ここでは「データ型を使ってリストビューを使う」ということはまったく分かりませんが、Aオブジェクトのリストは言及していません。 –

答えて

0

はおそらく、あなたがこの希望:欠落しているテンプレートの

<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

多くの感謝..何が必要な追加情報が不明でした。 – John