Je travaillais avec le contrôle ComboBox et je ne pouvais pas obtenir le SelectedItem à partir de la propriété de mon viewmodel. Voici la définition de contrôle:Définition de l'attribut Silverlight XAML Order Matters
<ComboBox x:Name="jobEmployee" Grid.Column="1" Grid.Row="2"
Margin="4" HorizontalAlignment="Left" Width="150"
SelectedItem="{Binding Path=EditingJob.Employee, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}"
ItemsSource="{Binding Path=Employees, Mode=OneWay}"
DisplayMemberPath="FullName"/>
J'avais un autre contrôle Combobox qui fonctionnait bien. La différence entre un qui définirait le SelectedItem et celui qui ne serait pas l'ordre de la définition de l'attribut. Voici la définition de contrôle de travail:
<ComboBox x:Name="jobEmployee" Grid.Column="1" Grid.Row="2"
Margin="4" HorizontalAlignment="Left" Width="150"
ItemsSource="{Binding Path=Employees, Mode=OneWay}"
SelectedItem="{Binding Path=EditingJob.Employee, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}"
DisplayMemberPath="FullName"/>
La différence entre les deux est que le ItemsSource est défini avant la SelectedItem sur le travail celui qui me porte à croire que dans ce cas au moins, la définition de l'attribut questions d'ordre. Ai-je manqué quelque chose ou ai-je trouvé que c'était vrai? A-t-il été documenté nulle part?
Dans ce cas, il est logique qu'un élément d'une liste ne puisse pas être sélectionné si la liste n'existe pas en premier lieu. C'est une anomalie à prendre en compte lors du codage de Silverlight XAML. Peut-être que des outils comme Expression Blend s'assurent que les attributs sont définis dans le bon ordre? – DaveB
@DaveB: Je ne suis pas sûr que ce soit le cas, je devrais tester ce scénario moi-même. Dans mon utilisation habituelle jusqu'à présent, le contexte de données est attribué à un ancêtre plus tard que l'une ou l'autre des deux propriétés, auquel cas l'ordre dans lequel ces propriétés sont attribuées ne devrait pas avoir d'importance. – AnthonyWJones
Les instructions indiquent que cela ne devrait pas avoir d'importance: "Autoriser les propriétés à être définies dans n'importe quel ordre, même si cela entraîne un état invalide temporaire de l'objet." https://msdn.microsoft.com/en-us/library/ms229006%28v=vs.110%29.aspx?f = 255 & MSPPError = -2147217396 – Wouter