Browse Source

Added repro of #2725 to BindingDemo.

pull/7354/head
Steven Kirk 4 years ago
parent
commit
f0d807d40b
  1. 22
      samples/BindingDemo/EnumToEnumerable.cs
  2. 6
      samples/BindingDemo/MainWindow.xaml
  3. 6
      samples/BindingDemo/ViewModels/MainWindowViewModel.cs

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

6
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">
<Window.Styles>
@ -40,6 +40,10 @@
<CheckBox IsChecked="{Binding !BooleanString}">!BooleanString</CheckBox>
<CheckBox IsChecked="{Binding !!BooleanString}">!!BooleanString</CheckBox>
</StackPanel>
<StackPanel Margin="18" Spacing="4" Width="200">
<TextBlock FontSize="16" Text="Markup Extensions"/>
<ComboBox Items="{local:EnumToEnumerable {x:Type vm:MainWindowViewModel+NestedEnum}}" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal">
<StackPanel Margin="18" Spacing="4" Width="200" HorizontalAlignment="Left">

6
samples/BindingDemo/ViewModels/MainWindowViewModel.cs

@ -115,5 +115,11 @@ namespace BindingDemo.ViewModels
{
return BooleanFlag;
}
public enum NestedEnum
{
Nested,
Enum,
}
}
}

Loading…
Cancel
Save