Enlace DataGridComboBoxColumn a List <Enum>
Quiero vincular una lista de valores de enumeración a un 'DataGridComboBoxColumn'. He intentado mucho, pero nada funciona realmente.
Esto es lo que tengo:
viewmodel-class:
public class ViewModel
{
public ViewModel()
{
TestCollection= new ObservableCollection<MyEnum>();
AnyClasses = new ObservableCollection<AnyClass>();
//... fill AnyClasses with stuff...
TestCollection.Add(MyEnum.Value1);
TestCollection.Add(MyEnum.Value2);
TestCollection.Add(MyEnum.Value3);
TestCollection.Add(MyEnum.Value4);
TestCollection.Add(MyEnum.Value5);
}
public ObservableCollection<MyEnum> TestCollection { get; set; }
public ObservableCollection<AnyClass> AnyClasses { get; private set; }
}
mi enumeración:
public enum MyEnum
{
Value1,
Value2,
Value3,
Value4,
Value5
}
Código detrás:
public partial class WPFWindow
{
private ViewModel Vm { get; set; }
public WPFWindow()
{
InitializeComponent();
Vm = new ViewModel();
DataContext = Vm;
}
...
}
y finalmente el XAML:
<DataGrid AutoGenerateColumns="False" Height="289" x:Name="dataGridAnything" ItemsSource="{Binding AnyClasses}" >
<DataGrid.Columns>
<DataGridComboBoxColumn Width="200" Header="Optionen" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window}, Path=DataContext.TestCollection}" SelectedValuePath="Value"/>
</DataGrid.Columns>
</DataGrid>
Si inicio el proyecto, no se muestra nada en DataGridComboBoxColumn. ¿Qué hice mal? Gracias por tu ayuda.
Editar: puede descargar el proyecto (construido con VS 2013) aquí:Descargar