DataGridComboBoxColumn-Bindung an List <Enum>
Ich möchte eine Liste von Aufzählungswerten an eine 'DataGridComboBoxColumn' binden. Ich habe viel versucht, aber nichts funktioniert wirklich.
Folgendes habe ich:
viewmodel-klasse:
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; }
}
meine Aufzählung:
public enum MyEnum
{
Value1,
Value2,
Value3,
Value4,
Value5
}
Codebehind:
public partial class WPFWindow
{
private ViewModel Vm { get; set; }
public WPFWindow()
{
InitializeComponent();
Vm = new ViewModel();
DataContext = Vm;
}
...
}
und schließlich die 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>
Wenn ich das Projekt starte, wird in der DataGridComboBoxColumn nichts angezeigt. Was habe ich falsch gemacht? Danke für deine Hilfe.
Bearbeiten: Sie können das Projekt (erstellt mit VS 2013) hier herunterladen:Herunterladen