2013-05-22 17 views
6

Tôi đang sử dụng MvvmCross v3.06 và tôi đã xác định một MvxListView trong Android bị ràng buộc vào danh sách. Tôi có thể xem danh sách nhưng không thể tìm ra cách tốt nhất để giữ mục được chọn khi tôi nhấp vào.MvvmCross: Cách tốt nhất để có được mục được chọn từ một MvxListView trong Android là gì?

Hiện tại tôi đang thực hiện các thao tác sau trong OnCreate hoạt động nhưng nó không đặc biệt là MVVM và tôi tự hỏi liệu có cách nào tốt hơn thông qua ràng buộc không?

var list = FindViewById<MvxListView>(Resource.Id.subslist); 
list.ItemClick = ((MyViewModel)ViewModel).ItemSelectedCommand; 

Tôi không thể tìm thấy bất kỳ tài liệu nào về cách tốt nhất để giải quyết vấn đề này để mọi trợ giúp đều tuyệt vời.

Trả lời

11

Đối với android, kỹ thuật phổ biến nhất là để ràng buộc ItemClick một MvxCommand<TItem> - vì vậy sử dụng:

local:MvxBind="ItemClick ItemSelectedCommand" 

Bạn có thể thấy điều này trong hoạt động trong các ví dụ bao gồm:


ít gặp hơn (cho đến nay), dành cho Android, bạn cũng có thể liên kết với một ràng buộc SelectedItem tùy chỉnh trên MvxListView

Kỹ thuật này được hiển thị trên một Spinner (MvxSpinner) trong MoreControls - https://github.com/slodge/MvvmCross-Tutorials/blob/master/MoreControls/MoreControls.Droid/Resources/Layout/FirstView.axml (ví dụ này được tạo trực tiếp trong video N = 18 - xem http://youtu.be/s1LhXdCTsn4?t=7m26s

+0

Tuyệt vời, điều đó thực sự hữu ích. Rất cám ơn Stuart, và khen ngợi công việc của bạn trên MvvmCross. – JohnB

+0

ItemClick có hoạt động trên LinearLayout không? – ronag

+0

Tôi gặp sự cố khi chọn tính năng SelectedItem để làm việc cho MvxListView. Tôi có thể nhìn thấy dữ liệu đang hoạt động, nhưng mục được chọn sẽ đánh dấu trong giây lát, và sau đó phần đánh dấu sẽ biến mất. Bất kỳ ý tưởng tại sao? – jokeane

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