我正在尝试制作一个自动生成的GridView,它将在每个包含字符串的列中的每个单元格中放置一个可编辑的ComboBox。每列的可选项应与DataTable中该列中已有的值匹配。我希望下面的代码可以工作,但我无法弄清楚如何动态设置ComboBox的ItemsSource。
private void dataGrid_AutoGeneratingColumn(object sender,
DataGridAutoGeneratingColumnEventArgs e) {
if (e.PropertyType == typeof(string)) {
DataGridTemplateColumn comboColumn = new DataGridTemplateColumn();
comboColumn.Header = e.PropertyName;
comboColumn.CellTemplate = (DataTemplate)Resources["ComboBoxDataTemplate"];
//I'd like to do something like this:
//comboColumn.ItemsSource = (DataContext as MainVM).PartClassVM.DataTable
//.AsEnumerable().Select(row => row[e.PropertyName].ToString()).Distinct();
e.Column = comboColumn;
}
}
有人可以给我一些指示吗?
编辑:这是DataTemplate的XAML:
<DataTemplate x:Key="ComboBoxDataTemplate">
<ComboBox IsEditable="True" Margin="0" />
</DataTemplate>