2010-08-17 35 views
9

Tôi có một ComboBox có ItemsSource của nó được liên kết với một tùy chọn tĩnh List<CustomSettings>. ComboBox là một phần của biểu mẫu được liên kết với lớp CustomObject và một trong các thuộc tính trên lớp đó là CustomSettingProperty.WPF - Combobox SelectedItem không được thiết lập?

Tôi muốn liên kết SelectedItem của ComboBox với thuộc tính được chỉ định trong CustomObject, tuy nhiên SelectedItem="{Binding Path=CustomSettingProperty}" không đặt mục được chọn mặc định. Sử dụng breakpoints Tôi có thể thấy rằng nó đang gọi phương thức get;, vì vậy tôi nghĩ rằng vấn đề có thể là trong thực tế CustomSettingProperty được tạo riêng biệt từ List<CustomObject> vì vậy WPF không nghĩ rằng đó là cùng một mục.

Có cách nào dễ dàng để thực hiện việc này không? Hoặc có lẽ một sự thay thế kể từ khi lớp CustomSettings chứa một Id?

+0

Bạn có thể cho mã cho CustomSettingProperty? Và có thể là một ví dụ về cách bạn đang thiết lập nó? – jsmith

Trả lời

20

Nếu mục được chọn không phải là cùng một thể hiện trong danh sách, bạn phải ghi đè bằng() trong CustomObject để cho ComboBox biết rằng đó là cùng một đối tượng.

Nếu đó là trường hợp tương tự, có lẽ nó chỉ là một điều đơn giản như thiết lập các BindingMode để TwoWay:

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}" 
+1

Cảm ơn bạn! Tôi không thể tin rằng tôi đã không nghĩ về việc đánh giá đẳng cấp ... Tôi sẽ không phạm sai lầm đó nữa (tôi hy vọng) – Rachel

+0

Tôi có cùng một vấn đề nhưng tôi đã bị ghi đè 'Bằng()' Làm cách nào tôi có thể thiết lập BindingMode? Lưu ý: Tôi đang sử dụng C# và Winforms –

+0

Mode là TwoWay theo mặc định phải không? –

Các vấn đề liên quan