2009-11-12 37 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); 
    } 
} 
相关问题