//--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Text; namespace ExtendedGrid.Microsoft.Windows.Controls { /// /// The event args class to be used with AutoGeneratingColumn event. /// public class DataGridAutoGeneratingColumnEventArgs : EventArgs { #region Constructors /// /// Public constructor /// /// /// /// public DataGridAutoGeneratingColumnEventArgs(string propertyName, Type propertyType, DataGridColumn column) : this(column, propertyName, propertyType, null) { } internal DataGridAutoGeneratingColumnEventArgs(DataGridColumn column, ItemPropertyInfo itemPropertyInfo) : this(column, itemPropertyInfo.Name, itemPropertyInfo.PropertyType, itemPropertyInfo.Descriptor) { } internal DataGridAutoGeneratingColumnEventArgs( DataGridColumn column, string propertyName, Type propertyType, object propertyDescriptor) { _column = column; _propertyName = propertyName; _propertyType = propertyType; PropertyDescriptor = propertyDescriptor; } #endregion #region Properties /// /// Column which is being generated /// public DataGridColumn Column { get { return _column; } set { _column = value; } } /// /// Property for which the column is getting generated /// public string PropertyName { get { return _propertyName; } } /// /// Type of the property for which the column is getting generated /// public Type PropertyType { get { return _propertyType; } } /// /// Descriptor of the property for which the column is gettign generated /// public object PropertyDescriptor { get { return _propertyDescriptor; } private set { if (value == null) { _propertyDescriptor = null; } else { Debug.Assert( typeof(PropertyDescriptor).IsAssignableFrom(value.GetType()) || typeof(PropertyInfo).IsAssignableFrom(value.GetType()), "Property descriptor should be either a PropertyDescriptor or a PropertyInfo"); _propertyDescriptor = value; } } } /// /// Flag to indicated if generation of this column has to be cancelled /// public bool Cancel { get { return _cancel; } set { _cancel = value; } } #endregion #region Data private DataGridColumn _column; private string _propertyName; private Type _propertyType; private object _propertyDescriptor; private bool _cancel; #endregion } }