예제 #1
0
        private void grid1_SelectedCellsChanged(object sender, FastWpfGrid.SelectionChangedEventArgs e)
        {
            var view = (FastWpfGrid.IFastGridView)grid1;

            if (view.GetSelectedModelCells().Count > 1)
            {
                view.ShowSelectionMenu(new string[] { "CMD1", "CMD2" });
            }
            else
            {
                view.ShowSelectionMenu(null);
            }
        }
        private void grid1_SelectedCellsChanged(object sender, FastWpfGrid.SelectionChangedEventArgs e)
        {
            var view = (FastWpfGrid.IFastGridView)grid1;

            if (view.GetSelectedModelCells().Count > 1)
            {
                var d = (FastWpfGrid.FastGridControl)sender;
                var c = d.GetSelectedModelCells();

                var rmin = c.Min(x => x.Row);
                var rmax = c.Max(x => x.Row);
                var ir   = rmax - rmin + 1;
                var cmin = c.Min(x => x.Column);
                var cmax = c.Max(x => x.Column);
                var ic   = cmax - cmin + 1;

                var data = new string[ir.Value, ic.Value];

                var sb = new StringBuilder();
                var m  = d.Model;
                var pr = c.First().Row;
                foreach (var cc in c)
                {
                    var da = m.GetCell(view, cc.Row.Value, cc.Column.Value);
                    data[cc.Row.Value - rmin.Value, cc.Column.Value - cmin.Value] = da.GetEditText();
                }
                for (var i = 0; i < ir.Value; i++)
                {
                    for (var j = 0; j < ic.Value; j++)
                    {
                        sb.Append(data[i, j] + ";");
                    }
                    sb.AppendLine();
                }
                Clipboard.SetText(sb.ToString());

                view.ShowSelectionMenu(new string[] { "CMD1", "CMD2" });
            }
            else
            {
                view.ShowSelectionMenu(null);
            }
        }