diff --git a/samples/BindingDemo/EnumToEnumerable.cs b/samples/BindingDemo/EnumToEnumerable.cs new file mode 100644 index 0000000000..f16c516a2c --- /dev/null +++ b/samples/BindingDemo/EnumToEnumerable.cs @@ -0,0 +1,22 @@ +using System; +using Avalonia.Markup.Xaml; + +namespace BindingDemo +{ + public class EnumToEnumerable : MarkupExtension + { + private readonly Type _enumType; + + public EnumToEnumerable(Type type) + { + if (!type.IsEnum) + throw new ArgumentException(nameof(type)); + _enumType = type; + } + + public override object ProvideValue(IServiceProvider serviceProvider) + { + return Enum.GetValues(_enumType); + } + } +} diff --git a/samples/BindingDemo/MainWindow.xaml b/samples/BindingDemo/MainWindow.xaml index b583503327..4f0780b21f 100644 --- a/samples/BindingDemo/MainWindow.xaml +++ b/samples/BindingDemo/MainWindow.xaml @@ -4,7 +4,7 @@ xmlns:vm="clr-namespace:BindingDemo.ViewModels" xmlns:local="clr-namespace:BindingDemo" Title="AvaloniaUI Bindings Test" - Width="800" + Width="1000" Height="600" x:DataType="vm:MainWindowViewModel"> @@ -40,6 +40,10 @@ !BooleanString !!BooleanString + + + + diff --git a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs index 18a7a01a69..c9cb2f3e57 100644 --- a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs @@ -115,5 +115,11 @@ namespace BindingDemo.ViewModels { return BooleanFlag; } + + public enum NestedEnum + { + Nested, + Enum, + } } }