UserControl.Resources of UserControl or Windows.Resources of Window
<DataTemplate x:Key="colReinstatementType">
<!--- Combobox will come HERE!! -->
</DataTemplate>
DataGrid
<my1:DataGridControl
Name="myDataGrid"
AutoCreateColumns="False"
NavigationBehavior="RowOnly"
ItemsSource="{Binding Source={StaticResource viewModel}, Path=MyData}" Margin="12,135,9,69" SelectionMode="Single" ItemScrollingBehavior="Deferred">
<xcdg:DataGridControl.View>
<xcdg:TableView UseDefaultHeadersFooters="False" ShowFixedColumnSplitter="False">
<xcdg:TableView.FixedHeaders>
<DataTemplate>
<xcdg:ColumnManagerRow />
</DataTemplate>
</xcdg:TableView.FixedHeaders>
</xcdg:TableView>
</xcdg:DataGridControl.View>
<my1:DataGridControl.Columns>
<!-- The column "Status" should be Unbound Column but it can't be done with Xceed Datagrid so the bound column has to be used but it won't be using in DataTemplate. Note: This is a trick. -->
<my1:Column FieldName="Field1" Title="Status" Width="50" CellContentTemplate="{StaticResource colReinstatementType}">
</my1:Column>
</my1:DataGridControl.Columns>
</my1:DataGridControl>
If you are following this way, you will be able to show any control in Grid Column.
But How can you get the reference of those controls inside datagrid? I mean, how will you read the value of those controls that you put inside the Grid Column after the user is selecting?
For this case, we can use Visual Tree Helper to loop through each and every DataGrid Row and get the reference of control. (This can be done) But the problem comes here. Xceed Datagrid doesn't show all rows on startup. That means, if the user scrolls the scrollbars then the rows will be created dynamically on the fly. So, we can't get all rows. :( Please read this post for more details about that problem. http://xceed.com/CS/forums/post/13798.aspx