前些日子,公司新需求需要对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));
        }

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

posted on 2015-10-14 10:55  王庆东mas  阅读(681)  评论(0编辑  收藏  举报