Để trả lời một chút về khái niệm:
SelectedValuePath
định nghĩa thuộc tính nào (theo tên của nó) của các đối tượng được liên kết với ListBox ItemsSource
sẽ được sử dụng làm mục SelectedValue
.
Ví dụ, nếu ListBox của bạn được liên kết với một tập hợp các Person
đối tượng, mỗi trong số đó có Name
, Age
và Gender
tài sản, SelectedValuePath=Name
sẽ làm cho giá trị của lựa chọn Person
của Name
tài sản để được trả lại trong SelectedValue
.
Lưu ý rằng nếu bạn ghi đè ControlTemplate của ListBox (hoặc áp dụng Kiểu) chỉ định thuộc tính nào sẽ hiển thị, SelectedValuePath
không thể được sử dụng.
SelectedItem
, trong khi đó, trả về toàn bộ Person
đối tượng hiện được chọn.
(Đây là một ví dụ khác từ MSDN , sử dụng TreeView)
Cập nhật: Như @Joe đã chỉ ra, thuộc tính DisplayMemberPath không liên quan đến các thuộc tính được chọn *. Mô tả đúng của nó như sau:
Lưu ý rằng các giá trị này khác với DisplayMemberPath
(được xác định trên ItemControl, không phải Selector), nhưng thuộc tính đó có hành vi tương tự SelectedValuePath
: khi không có kiểu / mẫu, nó xác định thuộc tính nào của đối tượng được liên kết với mục nên được sử dụng làm thuộc tính biểu diễn chuỗi.