It seems to me for you will fit this controls:

For the ComboBox
you can set the dynamic range, being attached to the collection. In DataGrid
you can do yourself the ComboBox using DataGridTemplateColumn
column:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=CustomObjectStringMember}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=CustomObjectListMember}"
Text="{Binding Path=CustomObjectStringMember}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Or usingDataGridComboBoxColumn
:
<DataGridComboBoxColumn Header="Current Category"
SelectedValueBinding="{Binding Path=CurrentCategory}"
SelectedValuePath="CategoryID"
DisplayMemberPath="CategoryName"
ItemsSource="{Binding Source={StaticResource categoriesDataProvider}}" />

IntegerUpDown
provides a TextBox with button spinners that allow incrementing and decrementing Nullable values by using the spinner buttons.
Try using Popup
with ListBox
like this:
<Popup Name="MyPopUp"
UseLayoutRounding="True"
AllowsTransparency="False"
IsOpen="True"
Placement="Right">
<Border Name="BorderContent"
UseLayoutRounding="True"
Width="140"
BorderThickness="1"
BorderBrush="Black">
<StackPanel Background="White">
<TextBlock Background="White"
Foreground="Black"
HorizontalAlignment="Center"
Text="MARKET" />
<Separator Background="Black" Height="2" />
<ListBox BorderBrush="Transparent">
<ListBoxItem>17.27</ListBoxItem>
<ListBoxItem>17.28</ListBoxItem>
<ListBoxItem>17.29</ListBoxItem>
<ListBoxItem>17.30</ListBoxItem>
</ListBox>
</StackPanel>
</Border>
</Popup>
Output

For Popup
you can set Placement to Right
and use dynamic collection for ItemSource. To appear the Popup in the DataGrid
you need place it in the CellEditingTemplate
like this:
<DataGridTemplateColumn Header="Test">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Sample}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<TextBox Text="{Binding Path=Sample}" />
<Popup ... />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>