For binding multiple properties to DataGridComboBoxColumn, you could refer to the following soltution.
Xaml:
<DataGrid x:Name="dg" ItemsSource="{Binding MyDatas}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Num" Binding="{Binding Num}"/>
<DataGridTemplateColumn Header="ComboBoxDatas">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedValue="{Binding Index}" SelectedValuePath="Index" HorizontalContentAlignment="Stretch"
ItemsSource="{Binding ComboboxDatas}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="5" Grid.Column="0" Text="{Binding Index}"/>
<TextBlock Margin="5" Grid.Column="1" Text="{Binding Name}"/>
<TextBlock Margin="5" Grid.Column="2" Text="{Binding Symbol}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="5" Grid.Column="0" Text="{Binding Index}"/>
<TextBlock Margin="5" Grid.Column="1" Text="{Binding Name}"/>
<TextBlock Margin="5" Grid.Column="2" Text="{Binding Symbol}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Codebehind:
The result:
----------------------------------------------------------------------------
If the response is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.