有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析

有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析

【原创】有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析

前些日子,公司新需求需要对silverlight的datagrid进行局部任意单元格数据可复制,查阅了半天网络资料愣是没找到相关资料,开始还以为是silverlight的bug根部无法实现,

最后还是实现了。MSDN上也未曾记录这个事件,具体代码如下:

前段xaml文件 需要个datagrid绑定复制事件:

CopyingRowClipboardContent="dataGrid_CopyingRowClipboardContent"

后台代码实现如下:

 void dataGrid_CopyingRowClipboardContent(object sender,DataGridRowClipboardEventArgs e)
        {
            var temp = e.ClipboardRowContent;
            var dgData = sender as DataGrid;
            Int32 i = dgData.CurrentColumn.DisplayIndex;
            string sColumnValue = ((TextBlock)dgData.Columns[i].GetCellContent(dgData.SelectedItem)).Text.Trim();
            temp.Clear();
            temp.Insert(0, new DataGridClipboardCellContent(e.Item, dgData.CurrentColumn, sColumnValue));
        }

这样就能实现单元格复制了(也就是复制当前鼠标单击所在行所在咧 的单元格值),否则默认赋值是 复制一行 所有列数据。