Wpf 如何将DataTemplateSelector与DataGridBoundColumn一起使用?

Wpf 如何将DataTemplateSelector与DataGridBoundColumn一起使用?,wpf,datagrid,datatemplate,datatemplateselector,Wpf,Datagrid,Datatemplate,Datatemplateselector,我遵循了所描述的简单方法,拥有一个带有动态生成列的DataGrid,它允许动态使用和绑定DataTemplates for (int i = 0; i < testDataGridSourceList.DataList[0].Count; i++) { var binding = new Binding(string.Format("[{0}]", i)); CustomBoundColumn customBo

我遵循了所描述的简单方法,拥有一个带有动态生成列的DataGrid,它允许动态使用和绑定DataTemplates

        for (int i = 0; i < testDataGridSourceList.DataList[0].Count; i++)
        {
            var binding = new Binding(string.Format("[{0}]", i));
            CustomBoundColumn customBoundColumn = new CustomBoundColumn();
            customBoundColumn.Header = "Col" + i;
            customBoundColumn.Binding = binding;
            customBoundColumn.TemplateName = "CustomTemplate";
            TestControlDataGrid.TestDataGrid.Columns.Add(customBoundColumn);
        }

我现在想使用DataTemplateSelector来允许每一行使用不同的DataTemplate,而不仅仅是使用第一个代码段中显示的“CustomTemplate”。我怎样才能做到这一点呢?

很抱歉回答得太晚了。我相信解决方案非常简单,只需在“CustomTemplate”中放置一个
ContentPresenter


就这样!现在可以使用
DataTemplateSelector
。一个很好的例子。

最后我替换了

content.ContentTemplate = (DataTemplate)cell.FindResource(TemplateName);


其中“templateSelector”是在XAML代码中声明为静态资源的DataTemplateSelector的键。这很好。

我创建了一个自定义列类,它将DataGridBoundColumn与DataGridTemplateColumn相结合

您可以在该列上设置绑定和模板

以下是消息来源:

不同的DataTemplate取决于什么?取决于该行上显示的数据类型(我正在填充一个基类列表,但每一行实际上可能是一个不同的派生类,带有一些我想在DataTemplate中使用的额外属性)我在不使用ContentPresenter的情况下实现了类似的功能。不过想法是一样的+1对于输入您的链接已断开,您能否找到另一个示例并粘贴代码?您是如何实现编辑功能的?对我来说,应用程序在双向绑定需要路径或XPath的情况下崩溃。我一开始编辑就崩溃。请看CellEditungTemplate
<DataTemplate x:Key="CustomTemplate">
    <ContentPresenter Content="{Binding}"
                      ContentTemplateSelector="{StaticResource myTemplateSelector}">
    </ContentPresenter>
</DataTemplate>
content.ContentTemplate = (DataTemplate)cell.FindResource(TemplateName);
content.ContentTemplateSelector = (DataTemplateSelector)cell.FindResource("templateSelector");