【发布时间】:2017-05-30 13:50:25
【问题描述】:
我正在尝试将一些内容拖放到 DataGrid,已删除的内容必须映射到已执行删除的列。
为此,我设置了我的 Datagrid.AllowDrop = true 并使用它的宽度属性计算列。
private void DGrdDatosImportar_Drop(object sender, DragEventArgs e)
{
var dropPos = e.GetPosition(DGrdDatosImportar);
double RefPos = DGrdDatosImportar.RowHeaderActualWidth;
DataGridColumn SelecteCol = null;
foreach (DataGridColumn Col in DGrdDatosImportar.Columns.ToList())
{
double ColWidth = Col.ActualWidth;
if (dropPos.X >= RefPos && dropPos.X <= (RefPos + ColWidth))
{
SelecteCol = Col;
break;
}
RefPos += ColWidth;
}
if (SelecteCol != null)
{
if (e.Data.GetDataPresent("IImportProperty"))
{
ImportColumn ImpCol = (ImportColumn)SelecteCol;
IImportProperty prop = e.Data.GetData("IImportProperty") as IImportProperty;
Importar source = ((Importar)GrdMain.DataContext);
source.EmparecarColumna2Excel(prop, ImpCol.ColParms);
}
}
}
当所有列都适合我的屏幕时效果很好,但是当执行水平滚动时它会失败。
我在我的 Datagrid 上搜索任何允许我执行水平滚动的属性,但找不到任何东西,每列都相同,但什么也没有:(
如何才能获得在我的 DataGrid 中执行的水平滚动 量?
还有另一种方法来获取执行我的放置的列吗?
【问题讨论】: