2011-01-20 2 views
10

私は、データグリッド内の単一の列に複数のコントロールを配置したい場合がいくつかあります。wpfを使用してDataGridのDataGridTemplateColumnに複数のコントロールを追加するにはどうすればよいですか?

たとえば、説明、画像ソース、タイムスタンプ、ジオタグなどが一致する画像が含まれているデータセットがあります。この情報を1つの列にサムネイル画像で表示し、テキストボックスまたはラベル。私が必要とする他のデータセットtextbox/checkbox、またはtextbox/comboboxが必要です。

2番目のコントロールを追加しようとすると、プロパティ "VisualTree"が2回以上設定されていることを報告するエラーが表示されます。

<DataGridTemplateColumn Header="Data" Width="100"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <Label Name="Description" Content="{Binding Desc}"></Label> 
      <Label Name="Camera" Content="{Binding Camera}"></Label> 
     </DataTemplate>  
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

答えて

26

するDataTemplateは、私は信じて、一つだけの要素を持っている必要があります - あなたは要素を含むようにパネルを使用する必要があり、このような何かを言う:

<DataGridTemplateColumn Header="Data" Width="100"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <Label Name="Description" Content="{Binding Desc}"></Label> 
       <Label Name="Camera" Content="{Binding Camera}"></Label> 
      </StackPanel> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

あなたはもちろんWrapPanel、グリッドを使用することができますまたはあなたが好きな他のもの - StackPanelはあなたのために起こっているようです。

+0

Genius!ありがとう、私は決してレイアウトを使用すると思った。再度、感謝します – IanM

関連する問題