如何使用wpf将多个控件添加到数据网格的DataGridTemplateColumn?

Ian*_*anM 12 wpf datagrid datagridtemplatecolumn

我有几个实例,我想在数据网格中的单个列中有几个控件.

例如,我有一个数据集,其中包含具有匹配描述,图像源,时间戳,地理标记等的图像.我想在一列中显示此信息的缩略图图像,在文本框或标签中显示大部分数据.我需要的其他数据集是textbox/checkbox,或者是textbox/combobox.

当我尝试添加第二个控件时,我收到一个错误,报告属性"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>
Run Code Online (Sandbox Code Playgroud)

Aus*_*amb 29

我相信DataTemplate应该只有一个元素 - 所以你应该使用一个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> 
Run Code Online (Sandbox Code Playgroud)

您当然可以使用WrapPanel,Grid或其他任何您喜欢的东西 - StackPanel似乎就是您想要的.