0

我在 WPF 中的 C1FlexGrid 中需要 excel 的 Ctrl+D 功能。我还需要在 C1FlexGrid 中实现 Excel 单元格的 Drag n Copy 功能。

4

1 回答 1

0

我不确定这是否与 C1flexgrid 一起使用,但值得一试。在 silverlight 项目属性中选中“需要提升的权限”,并使用 silverlight datagrid 的 drop 事件,如果它不是 OOB silverlight 应用程序,则可以在 silverlight datagrid 中处理从桌面拖放。

private void DocumentsDrop(object sender, DragEventArgs e)
{
 e.Handled = true;

var point = e.GetPosition(null);
var dataGridRow = ExtractDataGridRow(point);
if(dataGridRow !=null)
{.....
}

var droppedItems = e.Data.GetData(DataFormats.FileDrop) as      FileInfo[];
if (droppedItems != null)
 {
    var droppedDocumentsList = new List<FileInfo>();

    foreach (var droppedItem in droppedItems)
    {
        if ((droppedItem.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
        {
            var directory = new DirectoryInfo(droppedItem.FullName);
            droppedDocumentsList.AddRange(directory.EnumerateFiles("*", SearchOption.AllDirectories));
        }
        else
        {
            droppedDocumentsList.Add(droppedItem);
        }
    }

    if (droppedDocumentsList.Any())
    {
        ProcessFiles(droppedDocumentsList);
    }
    else
    {
        DisplayErrorMessage("The selected folder is empty.");
    }
}
}

设置 AllowDrop =true; 在用于数据网格的 xaml 中。从 DragEventArgs 中提取信息作为 FileInfo 对象。

于 2016-02-19T13:10:07.720 回答