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); } } }