using System;
using System.Windows.Markup;
namespace Developpez.Dotnet.Windows.Markup
{
///
/// Renvoie un tableau des valeurs possibles d'une énumération
///
[MarkupExtensionReturnType(typeof(Array))]
public class EnumValuesExtension : MarkupExtension
{
///
/// Initialise une nouvelle instance de EnumValuesExtension
///
public EnumValuesExtension()
{
}
///
/// Initialise une nouvelle instance de EnumValuesExtension pour le type d'énumération spécifié
///
/// Type d'énumération
public EnumValuesExtension(Type enumType)
{
this.EnumType = enumType;
}
///
/// Type de l'énumération dont la markup extension doit renvoyer les valeurs
///
[ConstructorArgument("enumType")]
public Type EnumType { get; set; }
///
/// Renvoie la liste des valeurs possibles de l'énumération du type spécifié
///
/// Objet qui peut fournir des services pour la markup extension
/// La liste des valeurs possibles de l'énumération
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Enum.GetValues(EnumType);
}
}
}