Estaba trabajando con el control ComboBox y no pude establecer el SelectedItem desde la propiedad en mi viewmodel. Aquí está la definición del control:Silverlight XAML Definición de atributo Asunto
<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"/>
tuve otro control ComboBox que funcionó bien sobresalen. La diferencia entre uno que establecería SelectedItem y el que no lo haría era el orden de la definición del atributo. Aquí está la definición de control de trabajo:
<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 diferencia entre el 2 es que la ItemsSource se define antes de la SelectedItem por un trabajo que me lleva a creer que en este caso al menos, las cuestiones de orden definición de atributos. ¿Me estoy perdiendo algo o he encontrado que esto es cierto? ¿Ha sido documentado en alguna parte?
En este caso, tiene sentido que un elemento en una lista no se pueda seleccionar si la lista no existe en primer lugar. Esta es una peculiaridad a tener en cuenta al codificar Silverlight XAML. ¿Quizás herramientas como Expression Blend se aseguren de que los atributos estén definidos en el orden correcto? – DaveB
@DaveB: No estoy seguro de que así sea, tendría que probar este escenario yo mismo. En mi uso típico, hasta ahora el contexto de datos se asigna a algún antecesor más tarde que cualquiera de las dos propiedades, en cuyo caso no debería importar en qué orden se asignan estas propiedades. – AnthonyWJones
Las directrices dicen que no debería importar: "DO permite que las propiedades se establezcan en cualquier orden, incluso si esto da como resultado un estado inválido temporal del objeto." https://msdn.microsoft.com/en-us/library/ms229006%28v=vs.110%29.aspx?f = 255 & MSPPError = -2147217396 – Wouter