Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>One thing that seems to be wrong is you should probably be using SelectedValueBinding not SelectedItemBinding. </p> <p>Here's a sample that works ok for me:</p> <pre><code>&lt;Page.Resources&gt; &lt;ViewModel:DataGridComboBoxViewModel x:Key="model"/&gt; &lt;Style x:Key="ElementStyle" TargetType="ComboBox"&gt; &lt;Setter Property="ItemsControl.ItemsSource" Value="{Binding Path=DataContext.DetailItems, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" /&gt; &lt;/Style&gt; &lt;/Page.Resources&gt; &lt;Grid DataContext="{StaticResource model}"&gt; &lt;DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False"&gt; &lt;DataGrid.Columns&gt; &lt;DataGridTextColumn Header="Id" Binding="{Binding Id}"/&gt; &lt;DataGridTextColumn Header="Name" Binding="{Binding Name}"/&gt; &lt;DataGridComboBoxColumn Header="Combo" DisplayMemberPath="Name" SelectedValueBinding="{Binding DetailItem}" ElementStyle="{StaticResource ElementStyle}" EditingElementStyle="{StaticResource ElementStyle}" &gt; &lt;/DataGridComboBoxColumn&gt; &lt;/DataGrid.Columns&gt; &lt;/DataGrid&gt; &lt;/Grid&gt; public class DataItem : ViewModelBase { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } private DetailItem _detailItem; public DetailItem DetailItem { get { return _detailItem; } set { Debug.WriteLine(value != null ? string.Format("Setting detail item to: {0}", value.Name) : "Setting detail item to null."); Set(() =&gt; DetailItem, ref _detailItem, value); } } } public class DetailItem : ViewModelBase { public int Id { get; set; } public string Name { get; set; } } public class DataGridComboBoxViewModel : ViewModelBase { public DataGridComboBoxViewModel() { DetailItems = new List&lt;DetailItem&gt; { new DetailItem {Id = 0, Name = "Zero"}, new DetailItem {Id = 1, Name = "One"}, new DetailItem {Id = 2, Name = "Two"}, new DetailItem {Id = 3, Name = "Three"}, }; Items = new List&lt;DataItem&gt; { new DataItem {Id = 0, Name = "Item 1", Description = "This is item 1"}, new DataItem {Id = 1, Name = "Item 2", Description = "This is item 2"}, new DataItem {Id = 2, Name = "Item 3", Description = "This is item 3"}, new DataItem {Id = 3, Name = "Item 4", Description = "This is item 4"}, }; } public List&lt;DataItem&gt; Items { get; set; } public List&lt;DetailItem&gt; DetailItems { get; private set; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload