silverlight-3.0 – Silverlight XAML属性定义顺序事项

我正在使用ComboBox控件,无法从我的viewmodel中的属性中获取SelectedItem.这里是控件定义:

<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"/>

我有另一个Combobox控件,工作很好.一个将设置SelectedItem和不会是属性定义顺序的区别.以下是工作控制定义:

<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"/>

2之间的区别是ItemsSource是在工作的SelectedItem之前定义的,这使我相信在这种情况下至少,属性定义顺序很重要.我错过了什么,还有其他人认为这是真的吗?有没有记录在哪里?

最佳答案
是的订单可以重要.考虑XAML读取涉及到对象的创建和赋值给这些对象的属性.不可能同时分配属性值,一个属性将被分配给另一个属性,然后分配给另一个属性,直到所有属性被分配为止.

由于在某些对象中分配属性会导致副作用,并且运行分配这些属性的顺序的其他代码可能会影响结果.这当然是一件坏事.

转载注明原文:silverlight-3.0 – Silverlight XAML属性定义顺序事项 - 代码日志