Как добавить несколько элементов управления в DataGridTemplateColumn файла datagrid с помощью wpf?
У меня есть несколько экземпляров, где я хотел бы иметь несколько элементов управления в одном столбце в datagrid.
Например, у меня есть набор данных, содержащий изображения с соответствующим описанием, источником изображения, меткой времени, геотагом и т.д. Я хотел бы отобразить эту информацию с уменьшенным изображением в одном столбце и большей частью данных в текстовом поле или метка. Другие наборы данных, для которых требуется текстовое поле/флажок, или текстовое поле/поле со списком.
Когда я пытаюсь добавить второй элемент управления, я получаю сообщение об ошибке, указывающее, что свойство "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>
Ответы
Ответ 1
У 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, Grid или что-нибудь еще, что вам нравится - StackPanel просто выглядит именно тем, что вы собираетесь делать.