Tôi đã làm việc với điều khiển ComboBox và không thể lấy SelectedItem được đặt từ thuộc tính trên viewmodel của tôi. Đây là định nghĩa điều khiển:Xác định thuộc tính Silverlight XAML Các vấn đề đặt hàng
<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"/>
Tôi có một điều khiển Combobox khác hoạt động tốt. Sự khác biệt giữa một trong đó sẽ thiết lập SelectedItem và một trong đó sẽ không phải là thứ tự của định nghĩa thuộc tính. Dưới đây là định nghĩa kiểm soát làm việc:
<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"/>
Sự khác biệt giữa 2 là ItemsSource được xác định trước SelectedItem trên làm việc một trong đó dẫn tôi để tin rằng trong trường hợp này ít nhất, thuộc tính để định nghĩa vấn đề. Tôi có thiếu một cái gì đó hoặc có những người khác thấy điều này là đúng? Nó đã được ghi chép ở bất cứ đâu?
Trong trường hợp này, có nghĩa là không thể chọn một mục trong danh sách nếu danh sách không tồn tại ở vị trí đầu tiên. Đây là một điều khó hiểu khi biết mã hóa Silverlight XAML. Có lẽ các công cụ như Expression Blend đảm bảo các thuộc tính được định nghĩa theo đúng thứ tự? – DaveB
@DaveB: Tôi không chắc lắm, tôi phải tự mình thử nghiệm kịch bản này. Trong cách sử dụng điển hình của tôi cho đến nay bối cảnh dữ liệu được gán cho một số tổ tiên muộn hơn một trong hai thuộc tính trong trường hợp đó, không nên biết thứ tự các thuộc tính này được gán. – AnthonyWJones
Các nguyên tắc nói rằng nó không quan trọng: "KHÔNG cho phép các thuộc tính được đặt theo bất kỳ thứ tự nào ngay cả khi điều này dẫn đến trạng thái không hợp lệ tạm thời của đối tượng." https://msdn.microsoft.com/en-us/library/ms229006%28v=vs.110%29.aspx?f = 255 & MSPPError = -2147217396 – Wouter