Mise à jour
Après quelques recherches. Ce qui semble être le problème, c'est que la SelectedValue/SelectedItem se produit avant que la source de l'élément n'ait fini de se charger. Si je m'assois à un point d'arrêt et que j'attends quelques secondes, cela fonctionne comme prévu. Je ne sais pas comment je vais résoudre ce problème.
Fin de la mise à jour
J'ai une application en WPF utilisant MVVM avec une ComboBox. Ci-dessous se trouve l'exemple du ViewModel. Le problème que je rencontre est que lorsque nous quittons notre page et que nous revenons, la ComboBox ne sélectionne pas la valeur courante qui est sélectionnée.
Voir le modèle
public class MyViewModel
{
private MyObject _selectedObject;
private Collection<Object2> _objects;
private IModel _model;
public MyViewModel(IModel model)
{
_model = model;
_objects = _model.GetObjects();
}
public Collection<MyObject> Objects
{
get
{
return _objects;
}
private set
{
_objects = value;
}
}
public MyObject SelectedObject
{
get
{
return _selectedObject;
}
set
{
_selectedObject = value;
}
}
}
Pour les besoins de cet exemple, disons que MyObject possède deux propriétés (Text et Id). Mon XAML pour la ComboBox ressemble à ceci.
XAML
<ComboBox Name="MyComboBox" Height="23" Width="auto"
SelectedItem="{Binding Path=SelectedObject,Mode=TwoWay}"
ItemsSource="{Binding Objects}"
DisplayMemberPath="Text"
SelectedValuePath="Id">
Quelle que soit ma configuration, lorsque je reviens sur la page et que l'objet est réassemblé, la ComboBox ne sélectionne pas la valeur. L'objet renvoie pourtant le bon objet via le get dans la propriété.
Je ne suis pas sûr qu'il s'agisse d'un problème lié au fonctionnement de la ComboBox et du modèle MVVM. La liaison avec la zone de texte que nous effectuons fonctionne correctement.