13

データグリッドの1つの列に複数のコントロールを配置したい場合がいくつかあります。

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

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

<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>
4

1 に答える 1

30

DataTemplateには要素が1つしかないはずです。したがって、要素を含めるにはPanelを使用する必要があります。たとえば、次のようにします。

<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、Grid、またはその他の好きなものを使用できます。StackPanelは、目的のように見えます。

于 2011-01-20T06:19:02.820 に答える