2009-03-20 70 views
6

Tôi đang sử dụng hai điều khiển ListBox trong cửa sổ WPF giống hệt nhau (giống hệt nhau = ItemSource của cả ListBox giống nhau và vì vậy chúng trông giống nhau) và chế độ chọn trên cả hai ListBox được đặt thành Nhiều.Chọn các mục trong hộp danh sách bằng C#

Hãy gọi listboxes LB1LB2 trong thời gian này, bây giờ khi tôi nhấp vào một mục trong LB1, tôi muốn cùng một mục trong LB2 để chọn tự động tức là nếu tôi chọn 3 mục trong LB1 sử dụng một trong hai phím Shift + Nhấp vào hoặc Ctrl + Nhấp vào các mục tương tự trong LB2 được chọn.

Đã đào các thuộc tính hộp danh sách như SelectedItems, SelectedIndex v.v. nhưng không có may mắn.

Trả lời

9

Đặt một sự kiện SelectionChanged trên listbox đầu tiên bạn

LB1.SelectionChanged += LB1_SelectionChanged; 

Sau đó, thực hiện phương pháp SelectionChanged như sau:

void LB1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    LB2.SelectedItems.Clear(); 
    foreach(var selected in LB1.SelectedItems) 
    { 
     LB2.SelectedItems.Add(selected); 
    } 
} 
+0

Xin chào, Cảm ơn bạn rất nhiều sự giúp đỡ của bạn được đánh giá cao, đoạn mã bạn đã làm việc như một say mê. Trân trọng @nand –

+0

Không sao cả .. tôi rất vui được giúp đỡ! :) – Arcturus

0

Bạn đã thử SetSelected chưa?

listBox2.SetSelected(1, True) 

Bạn có thể sử dụng nó như thế này

private void DoLB2Selection() 
{ 
    // Loop through all items the ListBox. 
    for (int x = 0; x < listBox1.Items.Count; x++) 
    { 
     // Determine if the item is selected. 
     if(listBox1.GetSelected(x) == true) 
     // Deselect all items that are selected. 
     listBox2.SetSelected(x,true); 
    } 

sử dụng các mục đã chọn từ LB1 như một chỉ mục trong LB2

+0

Hi PoweRoy, Cảm ơn bạn đã trả lời, nhưng tiếc là WPF không hiển thị thuộc tính SetSelected cho Listbox. Tôi đã thử googling cho nó (setselected) nhưng không thể có được một giải pháp và do đó bài này Trân trọng @nand –

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