【发布时间】:2020-03-08 07:48:00
【问题描述】:
我在 C# 中使用 WPF
我有一个 DataGrid,我需要在其中显示一个组合框。 我知道我可以通过将 DataGridComboBoxColumn 添加到 DataGrid 来做到这一点,但是我为该列中的每个单元格设置了组合框。
但我需要做的是只为列中的某些单元格显示一个组合框。 所以我尝试的是通过使用 Cell.PointToScreen() 和 TranslateTransform() 将 Combobox 移动到单击单元格的位置,在当前数据网格单元格上显示一个 Combobox (cboSelectToleranz):
所以这是我尝试过的(代码后面)但它不起作用(组合框从屏幕上消失...)
private void myDatagrid_onCurrentCellChanged(object sender, EventArgs e)
{
if (!displayCombobox) return;
//get screen postion of cell that was clicked
//
var cellContent = myDatagrid.CurrentCell.Column.GetCellContent(myDatagrid.CurrentCell.Item);
DataGridCell cell = cellContent.Parent as DataGridCell;
Point Position = cell.PointToScreen(new Point(0, 0));
//try to move a combobox over current cell
//
var tt = new TranslateTransform();
tt.X = Position.X;
tt.Y = Position.Y;
cboSelectToleranz.RenderTransform = tt;
}
【问题讨论】:
标签: c# wpf datagrid controls move