Solution:
1. XAML:
<DataGrid x:Name="DataGrid" AutoGenerateColumns="False" CanUserAddRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="User UName" Width="Auto" Binding="{Binding UName}"/>
<DataGridComboBoxColumn x:Name="ComboBoxColumn" Header="Country" Width="Auto" DisplayMemberPath="name" SelectedItemBinding="{Binding CountryData}"/>
</DataGrid.Columns>
</DataGrid>
2. Code behind:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
InitData();
ComboBoxColumn.ItemsSource = CountriesCollection;
DataGrid.ItemsSource = UsersCollection;
}
private void InitData()
{
UsersCollection = new ObservableCollection<UserData>(new List<UserData>
{
new UserData
{
UName = "Greg",
},
new UserData
{
UName = "Joe",
},
new UserData
{
UName = "Iv",
}
});
CountriesCollection = new ObservableCollection<Country>(new List<Country>
{
new Country("Ger", "1500"),
new Country("Fra", "1500"),
new Country("Ru", "1500"),
new Country("Bel", "1500"),
});
}
public ObservableCollection<Country> CountriesCollection { get; set; }
public ObservableCollection<UserData> UsersCollection { get; set; }
}
3. User model:
public class UserData
{
public string UName { get; set; }
public object CountryData { get; set; }
}
4. tool tip support: replace a desired combo box column with next xaml code:
<DataGridComboBoxColumn x:Name="ComboBoxColumn" Header="Country" DisplayMemberPath="CountryName"
ItemsSource="{StaticResource CountriesArray}" Width="Auto"
SelectedItemBinding="{Binding CountryData, UpdateSourceTrigger=PropertyChanged}">
<DataGridComboBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip">
<Setter.Value>
<ContentControl Content="{Binding }">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type soDataGridProjectsHelpAttempt:UserData}">
<DataTemplate.Resources>
<system:String x:Key="NoAnyEntriesKey">
No any entry presented
</system:String>
</DataTemplate.Resources>
<TextBlock Text="{Binding CountryData.Description, FallbackValue={StaticResource NoAnyEntriesKey}}"></TextBlock>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.CellStyle>
</DataGridComboBoxColumn>
and take in account you nedd to extend Country model with description property.
regards,