Có vẻ như những người khác đã có các biến thể về câu hỏi này, nhưng từ những gì tôi có thể nói nó chưa được giải quyết cho những người sử dụng bộ sưu tập trong một mô hình xem đơn lẻ.MVVM chọn một mục treeview lập trình
Tôi có một máy ảo có chứa một ObservableCollection đối tượng, chứ không phải máy ảo cho từng đối tượng. Vì vậy tôi không nghĩ rằng tôi có thể sử dụng bool SelectedItem mà thường được thảo luận bởi vì tôi không nghĩ rằng tôi có thể liên kết với tài sản trên các đối tượng của bộ sưu tập ... chỉ là các thuộc tính trên máy ảo.
Vì vậy, tôi đã có toàn bộ điều khá tốt bằng văn bản không có khớp nối code-behind và tối thiểu, nhưng khi một mục mới được bổ sung vào bộ sưu tập, được ràng buộc với TreeView, tôi cần phải chọn mục đó.
Ý tưởng?
Cảm ơn!
Có thể như vậy. Mặc dù vậy, tôi đã chọn một con đường ở giữa. Tôi đã đi trước và triển khai thực hiện INotifyPropertyChanged trên từng loại đối tượng mà ObservableCollection của VM nắm giữ và tát IsSelected và IsExpanded trên chúng. Down side là các đối tượng của tôi bây giờ có mà goop trong họ (là thậm chí xấu?). Mặt tốt là tôi không phải tạo thêm lớp VM mà cung cấp cho tôi không có gì ngoài một nơi để giữ đối tượng bên dưới và hai thuộc tính đó. – Bob
Nếu đó là tất cả những gì bạn cần, bạn cũng có thể làm theo cách đó. – Erin