//---------------------------------------------------------------------------
//
// 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
}
}