download DataGridRowClipboardEventArgs.cs
Language: C#
LOC: 69
Project Info
Windows Presentation Foundation (WPF)(wpf)
Server: Spider_20090505_inc
Type: filesystem
...Microsoft\Windows\Controls\
   ...OrientationConverter.cs
   ClipboardHelper.cs
   ColumnHeaderCollection.cs
   ComboBoxBindingTarget.cs
   ContainerTracking.cs
   DataGrid.cs
   ...atingColumnEventArgs.cs
   ...ginningEditEventArgs.cs
   DataGridBoundColumn.cs
   DataGridCell.cs
   ...llClipboardEventArgs.cs
   ...lEditEndingEventArgs.cs
   DataGridCellInfo.cs
   DataGridCellsPanel.cs
   DataGridCheckBoxColumn.cs
   ...ClipboardCellContent.cs
   ...ridClipboardCopyMode.cs
   DataGridColumn.cs
   ...GridColumnCollection.cs
   ...dColumnDropSeparator.cs
   DataGridColumnEventArgs.cs
   ...ColumnFloatingHeader.cs
   ...nReorderingEventArgs.cs
   DataGridComboBoxColumn.cs
   DataGridEditAction.cs
   DataGridEditingUnit.cs
   ...dGridLinesVisibility.cs
   DataGridHeaderBorder.cs
   ...ridHeadersVisibility.cs
   ...oVisibilityConverter.cs
   DataGridHelper.cs
   DataGridHyperlinkColumn.cs
   ...dItemAttachedStorage.cs
   DataGridLength.cs
   DataGridLengthConverter.cs
   DataGridLengthUnitType.cs
   ...CellForEditEventArgs.cs
   DataGridRow.cs
   ...owClipboardEventArgs.cs
   ...dRowDetailsEventArgs.cs
   ...etailsVisibilityMode.cs
   ...wEditEndingEventArgs.cs
   DataGridRowEventArgs.cs
   DataGridSelectionMode.cs
   DataGridSelectionUnit.cs
   ...GridSortingEventArgs.cs
   ...dSortingEventHandler.cs
   DataGridTemplateColumn.cs
   DataGridTextColumn.cs
   DoubleUtil.cs
   ...zingNewItemEventArgs.cs
   ...gNewItemEventHandler.cs
   IProvideDataGridColumn.cs
   ...ipleCopiesCollection.cs
   NotificationTarget.cs
   RealizedColumnsBlock.cs
   ...ellsChangedEventArgs.cs
   ...sChangedEventHandler.cs
   SelectedCellsCollection.cs
   ...ScrollingOrientation.cs
   ...edCellInfoCollection.cs
   WeakHashtable.cs

//---------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
//---------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;

namespace Microsoft.Windows.Controls
{
    /// <summary>
    /// This class encapsulates a selected row information necessary for CopyingRowClipboardContent event
    /// </summary>
    public class DataGridRowClipboardEventArgs : EventArgs
    {
        /// <summary>
        /// Creates DataGridRowClipboardEventArgs object initializing the properties.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="startColumnDisplayIndex"></param>
        /// <param name="endColumnDisplayIndex"></param>
        /// <param name="isColumnHeadersRow"></param>
        public DataGridRowClipboardEventArgs(object item, int startColumnDisplayIndex, int endColumnDisplayIndex, bool isColumnHeadersRow)
        {
            _item = item;
            _startColumnDisplayIndex = startColumnDisplayIndex;
            _endColumnDisplayIndex = endColumnDisplayIndex;
            _isColumnHeadersRow = isColumnHeadersRow;
        }

        internal DataGridRowClipboardEventArgs(object item, int startColumnDisplayIndex, int endColumnDisplayIndex, bool isColumnHeadersRow, int rowIndexHint) :
            this(item, startColumnDisplayIndex, endColumnDisplayIndex, isColumnHeadersRow)
        {
            _rowIndexHint = rowIndexHint;
        }

        /// <summary>
        /// DataGrid row item for which we prepare ClipboardRowContent
        /// </summary>
        public object Item
        {
            get { return _item; }
        }

        /// <summary>
        /// This list should be used to modify, add ot remove a cell content before it gets stored into the clipboard.
        /// </summary>
        public List<DataGridClipboardCellContent> ClipboardRowContent
        {
            get
            {
                if (_clipboardRowContent == null)
                {
                    _clipboardRowContent = new List<DataGridClipboardCellContent>();
                }

                return _clipboardRowContent;
            }
        }

        /// <summary>
        /// This method serialize ClipboardRowContent list into string using the specified format.
        /// </summary>
        /// <param name="format"></param>
        /// <returns></returns>
        public string FormatClipboardCellValues(string format)
        {
            StringBuilder sb = new StringBuilder();
            int count = ClipboardRowContent.Count;
            for (int i = 0; i < count; i++)
            {
                ClipboardHelper.FormatCell(ClipboardRowContent[i].Content, i == 0 /* firstCell */, i == count - 1 /* lastCell */, sb, format);
            }

            return sb.ToString();
        }

        /// <summary>
        /// Represents the DisplayIndex of the first selected column
        /// </summary>
        public int StartColumnDisplayIndex
        {
            get { return _startColumnDisplayIndex; }
        }

        /// <summary>
        /// Represents the DisplayIndex of the last selected column
        /// </summary>
        public int EndColumnDisplayIndex
        {
            get { return _endColumnDisplayIndex; }
        }

        /// <summary>
        /// This property is true when the ClipboardRowContent represents column headers. In this case Item is null.
        /// </summary>
        public bool IsColumnHeadersRow
        {
            get { return _isColumnHeadersRow; }
        }

        /// <summary>
        ///     If the row index was known at creation time, this will be non-negative.
        /// </summary>
        internal int RowIndexHint
        {
            get { return _rowIndexHint; }
        }

        private int _startColumnDisplayIndex;
        private int _endColumnDisplayIndex;
        private object _item;
        private bool _isColumnHeadersRow;
        private List<DataGridClipboardCellContent> _clipboardRowContent;
        private int _rowIndexHint = -1;
    }
}

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us