我在C#中使用WPF
我有一个DataGrid,需要在其中显示一个组合框。 我知道我可以通过向DataGrid添加一个DataGridComboBoxColumn来做到这一点,但是在该列中的每个单元格中都有组合框。
但是我需要做的是只为列中的某些单元格显示一个Combox。 因此,我尝试通过使用Cell.PointToScreen()和TranslateTransform()将组合框移动到单击的单元格的位置来在当前数据网格单元格上显示组合框(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;
}