Hola Alexg88, en primer lugar, muchas gracias por tu tiempo.
No tiene gran cosa mi DataGrid, la verdad...
Código:
<sdk:DataGrid AutoGenerateColumns="False" Height="100" HorizontalAlignment="Left"
Margin="12,12,0,0" ItemsSource="{Binding PersonModelList}" Name="dataGrid1"
VerticalAlignment="Top" Width="392" IsReadOnly="True">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<sdk:DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
El problema creo que lo tengo identificado, pero no sé como solucionarlo.
La cuestión es que cuando navego por los registros en el DataGrid, para que el ComboBox sepa si tiene que cambiar de elemento, se tiene que basar en una propiedad primitiva.
Código:
<ComboBox Height="23" HorizontalAlignment="Left" Margin="80,215,0,0"
ItemsSource="{Binding PersonTypeModelList, Mode=OneWay}"
SelectedValuePath="Code"
SelectedValue="{Binding ElementName=dataGrid1, Path=SelectedItem.PersonType.Code, Mode=TwoWay}"
Name="comboBox1" VerticalAlignment="Top" Width="139">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Vale, hasta aquí perfecto. Según voy navegando por el Grid, el ComboBox se autoselecciona con el registro correspondiente del Grid. Parece que está bien enlazado.
Cuando cambio a mano el elemento en el ComboBox, la propiedad
PersonType cambia adecuadamente su
Code pero... la propiedad
Description sigue con la anterior.
En resumidas cuentas, cuando cambio el Item del Combo, debería actualizarse por completo la propiedad PersonType del objeto que estoy editando.
Espero haberme explicado... :S