0

我正在使用 WPF Datagrid,其中将动态添加行。我可以在选定的数据网格单元格中动态创建标签、文本框、按钮等 wpf 控件。

我需要将数据网格单元格内容控件显示到画布中。换句话说,行和列中的控件需要在画布上以表格格式显示。

有谁知道如何做到这一点?

4

1 回答 1

1

我不确定您要问什么,但是您可以使用 aDataGridTemplateColumn来指定应将项目绘制为Canvas

<DataGridTemplateColumn Header="ColumnHeader">
    <DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
            <Canvas>
                <Label ... />
                <TextBox ... />
                <Button ... />
            </Canvas>
         </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

如果您希望将项目放置Canvas在.DataGridDataGrid

如果是这种情况,我建议您改用ItemsControl

<ItemsControl ItemsSource="{Binding MyCollection}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Canvas.Left" Value="{Binding X}" />
            <Setter Property="Canvas.Top" Value="{Binding Y}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>
于 2012-07-20T15:13:08.930 回答