我想枚举值列表绑定到“DataGridComboBoxColumn”。 我已经尝试了很多,但没有真正的作品。
以下是我有:
视图模型类:
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; }
}
我的枚举:
public enum MyEnum
{
Value1,
Value2,
Value3,
Value4,
Value5
}
代码隐藏:
public partial class WPFWindow
{
private ViewModel Vm { get; set; }
public WPFWindow()
{
InitializeComponent();
Vm = new ViewModel();
DataContext = Vm;
}
...
}
最后的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>
如果我启动项目中,没有显示在DataGridComboBoxColumn。 我做错了什么? THX对您有所帮助。
编辑:您可以下载该项目(与VS 2013内置)这里: 下载