Как повторно использовать WPF DataGridTemplateColumn (включая привязку)

В таблицах данных WPF у меня есть столбец, определенный как DataGridTemplateColumn, который мне нужно будет использовать для всех типов столбцов. В качестве очень упрощенного примера, пожалуйста, рассмотрите ниже как фиктивный образец:

<DataGrid ItemsSource="{Binding Path=ItemList, Mode=OneWay}" AutoGenerateColumns="False" >                
    <DataGrid.Columns>

        <DataGridTemplateColumn Header="Name" MinWidth="130" Width="Auto">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <DockPanel LastChildFill="True">
                        <Image Source="component/Images/test.png"/>
                        <TextBlock Text="{Binding Path=Name, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
                    </DockPanel>                                
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <DockPanel LastChildFill="True">
                        <Image Source="component/Images/test.png"/>
                        <TextBox Text="{Binding Path=Name, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
                    </DockPanel>
                </DataTemplate>                            
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>

        <DataGridTextColumn Header="Company" Binding="{Binding Company, ValidatesOnDataErrors=True}" MinWidth="115" Width="Auto"/>                    
    </DataGrid.Columns>
</DataGrid>

Для простого примера, как я могу применить тот же шаблон, который использовался для столбца с заголовком = имя к столбцу с заголовком = компания, без необходимости воспроизводить весь шаблон для каждого столбца?

Я нашел ответ сэтот предыдущий так вопросгде они объясняют, используя такие ресурсы, как:

<Application.Resources> 
     <DataTemplate x:Key="CellTemplate"> 
     ... 
     </DataTemplate> 
     <DataTemplate x:Key="CellEdintingTemplate"> 
     ... 
     </DataTemplate> 
</Application.Resources> 

<DataGrid Style="{StaticResource MainGridStyle}"> 
    <DataGrid.Columns> 
        <DataGridTemplateColumn CellTemplate="{StaticResource MyFirstColumnCellTemplate}" CellEdintingTemplate="{StaticResource MyFirstColumnCellEdintingTemplate}"/> 
        ... 
    </DataGrid.Columns> 
<DataGrid>  

Это дает мне 95%, но последний кусок, который мне не хватает, - это как справиться с привязкой данных? Как мне создать какой-то тип заполнителя в шаблоне, а затем сделать фактическую привязку в сетке?

EDIT Я продолжал искать и нашел вопросCreate Common DataGridTemplateColumn что звучит так, как будто я хочу сделать, на самом деле сейчас невозможно. Так что, если кто-то еще пытается это сделать и видит этот вопрос, я не могу гарантировать, что это невозможно, но по этой ссылке кажется, что это возможно. Так что просто нужно будет продублировать весь код tempalte для каждого столбца.

Ответы на вопрос(2)

Ваш ответ на вопрос