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

标签 wpf datagrid datagridtemplatecolumn

我有几个实例,我希望在数据网格的单个列中有多个控件。

例如,我有一个数据集,其中包含具有匹配描述、图像源、时间戳、地理标记等的图像。我想用一列中的缩略图和文本框或标签中的大部分数据来显示此信息。我拥有的其他数据集需要文本框/复选框或文本框/组合框。

当我尝试添加第二个控件时,我收到一条错误报告,指出属性“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>

最佳答案

我相信 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 似乎正是您想要的。

关于wpf - 如何使用 wpf 向数据网格的 DataGridTemplateColumn 添加多个控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744020/

相关文章:

c# - 使用 MvvmLight.Messaging.Messenger 实例化新的 View + ViewModel (Window)

wpf - 将 DataGrid 行中的 DoubleClick 命令绑定(bind)到 VM

c# - WPF DataGrid 中基于基础数据集(及其类型)的动态 DataGrid 列

c# - DataGridTemplateColumn (ComboBox, DatePicker) 重置/清除并且不触发 AddingNewItem

c# - 等待动画、渲染完成 - XAML 和 C#

c# - 更改数据模板的数据上下文会清除组合框选择

c# - 如果 IsEditable 和 IsReadOnly 为真,如何使 WPF ComboBox 键盘文本搜索正常工作?

c# - 单击 DataGridCell 时的 WPF 触发事件

Silverlight数据网格无法显示数据