我阅读了在WindowsPhoneGeek中使用MultiselectList的示例 part1 part2
当我实现MultiselectList的SelectAll和UnSelectAll函数时,我发现如果超过特定限制的项目数,并非MultiselectList中的所有项都是正确选择/取消选择。有些项目不会进入以下代码中的if部分
DependencyObject visualItem = itemContainerGenerator.ContainerFromItem(pizzaOption);
MultiselectItem multiselectItem = visualItem as MultiselectItem;
if (multiselectItem != null)
{
// NOTE: this will also add an item to the SelectedItems collection
multiselectItem.IsSelected = selected;
}
我想这是因为并非所有的multiselectItem都在UI中显示了那个时间。 但我确实需要SelectAll来选择MultiselectList中的所有项目,而不仅仅是UI中的项目。我能做什么?我一直在考虑将IsSelected属性绑定到viewmodel作为一种解决方法,但我尝试了以下代码并在解析该页面的xaml时遇到异常。
<toolkit:MultiselectList.ItemContainerStyle>
<Style TargetType="toolkit:MultiselectItem">
<Setter Property="HintPanelHeight" Value="75"/>
<Setter Property="IsSelected" Value="{Binding IsMarked, Mode=TwoWay}"/>
</Style>
</toolkit:MultiselectList.ItemContainerStyle>
请帮帮我.. 提前谢谢你:D
答案 0 :(得分:0)
您的
会出现xaml解析错误<Style TargetType="toolkit:MultiselectItem">
<Setter Property="HintPanelHeight" Value="75"/>
<Setter Property="IsSelected" Value="{Binding IsMarked, Mode=TwoWay}"/>
</Style>
应该是资源,让我们说
<toolkit:MultiselectList.Resources>
<Style TargetType="toolkit:MultiselectItem">
<Setter Property="HintPanelHeight" Value="75"/>
</Style>
</toolkit:MultiselectList.Resources>
对我来说,我会将MultiselectList的datacontext绑定到一个类,并对其项目进行预测,如
DataContext = new List<ClassADataContext>();
foreach(var items in DataContext)
{
... logic
items.IsMarked = false; or whatever
}