2010-10-01 46 views
5

Tôi có một ListBox được tạo thành từ các mục Grid trong Multiple SelectionMode trong Silverlight 3.0.Lấy chỉ mục của nhiều mục được chọn trong một hộp danh sách bằng Silverlight

Khi tôi sử dụng ListBox.SelectedIndex, nó chỉ trả về mục đầu tiên được chọn.

Tôi muốn có thể xem tất cả các mục đã chọn sao cho nó sẽ trả về tất cả các chỉ mục mục đã chọn 'như; 2, 5 và 7, v.v.

Bất kỳ trợ giúp nào?

Chúc mừng,

Turtlepower.

+0

Bạn kiểm tra xem có là một thuộc tính có tên SelectedIndices/SelectedIndexList hoặc tương tự như thế nào? –

+0

ListBox trong Silverlight không có SelectedIndices, nhưng cảm ơn bạn. – turtlepower

Trả lời

8

Bạn có thể tìm thấy các chỉ số được lựa chọn bằng cách duyệt qua SelectedItems và tìm kiếm các đối tượng trong Items tài sản, như thế này:

List<int> selectedItemIndexes = new List<int>(); 
foreach (object o in listBox.SelectedItems) 
    selectedItemIndexes.Add(listBox.Items.IndexOf(o)); 

Hoặc nếu bạn thích LINQ:

List<int> selectedItemIndexes = (from object o in listBox.SelectedItems select listBox.Items.IndexOf(o)).ToList(); 
+1

Cảm ơn bạn Yogesh, nó gần như đang hoạt động. Kỳ lạ là tôi chỉ có 5 mục trong hộp danh sách của mình và khi tôi trả lại tất cả, tôi nhận được 7 mục "0, 1, 2, 3, 4, 0, 0, 0". Tại sao thêm ba 0 vào cuối? – turtlepower

+0

5 mục như trong các mục đã chọn? Bạn có thể đăng mã bạn đang sử dụng để "trả lại" không? – Yogesh

+0

Danh sách selectedItemIndexes = new List (); foreach (đối tượng o trong myListBox.SelectedItems) { selectedItemIndexes.Add (myListBox.Items.IndexOf (o)); } Có, 5 mục và tôi cũng chỉ chọn 5 mục. Odd. – turtlepower

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