我有一个ListBox(AvailableDevicesListBox),它使用Silverlight 3中的数据绑定进行填充。绑定是 DeviceDTO 类型的对象的集合。它被设置为允许多个选择,这一切都正常。
但是,我试图让'Select All'按钮工作,如果我遍历AvailableDevicesListBox.Items集合,我返回 DeviceDTO 对象,而不是ListBoxItem对象,所以我无法选择/取消选择列表框中我想要的项目。
有人可以提出任何建议吗?
答案 0 :(得分: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);
希望这有帮助,尊重
答案 1 :(得分:0)
我这是一个快速的方法:
的Xaml
<StackPanel x:Name="LayoutRoot" Background="White">
<ListBox x:Name="list" SelectionMode="Multiple" />
<Button Content="Select All" Width="100" Click="Button_Click" />
</StackPanel>
代码 公共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);
}
}