如何在AutoGeneratingColumn中设置DataGridTemplateColumn ComboBox的ItemsSource?

时间:2016-06-16 19:10:35

标签: c# wpf gridview combobox datagridtemplatecolumn

我正在尝试制作一个自动生成的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>

0 个答案:

没有答案