WindowsPhoneGeek part1 part2 で MultiselectList の使用例を読んだ
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 に表示されたわけではないからだと思います。しかし、UI の項目だけでなく、MultiselectList のすべての項目を選択するには、SelectAll が必要です。私に何ができる?回避策として、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