2009-11-12 39 views
0

我有一個ListBox(AvailableDevicesListBox),它在Silverlight 3中使用數據綁定進行填充。綁定是類型爲DeviceDTO的對象的集合。它設置爲允許多個選擇,並且這一切都正常工作。Silverlight - 如何以編程方式選擇數據綁定列表框中的項目?

不過,我試圖讓「全選」按鈕的工作,如果我通過AvailableDevicesListBox.Items訪問集合,我返回DeviceDTO對象,而不是一個ListBoxItem對象,所以我也沒辦法的選擇/取消選擇我想要的列表框中的項目。

任何人都可以提供任何建議嗎?

+0

感謝您的答案傢伙 - 我看到SelectedItems是隻讀的,沒有意識到然後我可以使用添加()。現在精美的作品,謝謝! – 2009-11-12 01:52:00

回答

2

如果我正確理解你的問題,你需要使用ListBox的SelectedItems屬性來添加你需要選擇的所有項目(如果你需要全部選擇,我猜他們都是)。下面是這工作得很好,我一個小例子:

// create collection of DeviceDTO objects 
List<DeviceDTO> listItems = new List<DeviceDTO>(); 

listItems.Add(new DeviceDTO("test0")); 
listItems.Add(new DeviceDTO("test1")); 
listItems.Add(new DeviceDTO("test2")); 

// bind listbox to the collection 
testListBox.ItemsSource = listItems; 

// select all items 
foreach (DeviceDTO item in listItems) 
    testListBox.SelectedItems.Add(item); 

希望這會有所幫助,至於

0

這裏是一個快速的方式我這樣做:

的XAML

<StackPanel x:Name="LayoutRoot" Background="White"> 
    <ListBox x:Name="list" SelectionMode="Multiple" /> 
    <Button Content="Select All" Width="100" Click="Button_Click" /> 
</StackPanel> 

代碼 public MainPage() { InitializeComponent();

var items = new List<string>(){"one", "two", "three", "four", "five"}; 
list.ItemsSource = items; 

}

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    foreach (var item in list.ItemsSource) 
    { 
     list.SelectedItems.Add(item); 
    } 
} 
相關問題