我正在使用 WPF Datagrid,其中将动态添加行。我可以在选定的数据网格单元格中动态创建标签、文本框、按钮等 wpf 控件。
我需要将数据网格单元格内容控件显示到画布中。换句话说,行和列中的控件需要在画布上以表格格式显示。
有谁知道如何做到这一点?
我不确定您要问什么,但是您可以使用 aDataGridTemplateColumn
来指定应将项目绘制为Canvas
<DataGridTemplateColumn Header="ColumnHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Canvas>
<Label ... />
<TextBox ... />
<Button ... />
</Canvas>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
如果您希望将项目放置Canvas
在.DataGrid
DataGrid
如果是这种情况,我建议您改用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>