2012-04-10 4 views
1

私はMultiselectListののSelectAllとUnSelectAll機能を実装する場合、私は以上のアイテムの数ならばMultiselectListではないすべての項目が適切に選択/非選択だったことがわかりWindowsPhoneGeek にpart1part2MVVスタイルでMultiselectListを使用することができます(IsSelectedプロパティをviewmodelにバインドします)?

をMultiselectListの使用例を読みます一定の限度。アイテムの中には、コード

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にその時間を示したないからだと推測し、次にIF部に入ることはありません。 しかし、私はSelectAllがUI内の項目だけでなく、MultiselectList内のすべての項目を選択する必要があります。私に何ができる?回避策として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あなた

<Style TargetType="toolkit:MultiselectItem"> 
     <Setter Property="HintPanelHeight" Value="75"/> 
     <Setter Property="IsSelected" Value="{Binding IsMarked, Mode=TwoWay}"/> 
</Style> 

リソースにする必要があります、のは言わせているため

答えて

0

あなたは、XAMLの解析エラーを取得

<toolkit:MultiselectList.Resources> 
    <Style TargetType="toolkit:MultiselectItem"> 
      <Setter Property="HintPanelHeight" Value="75"/> 
    </Style> 
</toolkit:MultiselectList.Resources> 

私にとっては、MultiselectListのdatacontextをクラスにバインドしてforeaを実行しますあなたの答えに感謝します。

DataContext = new List<ClassADataContext>(); 

foreach(var items in DataContext) 
{ 
    ... logic 
    items.IsMarked = false; or whatever 
} 
+0

しかし、xamlの解析については、HintPanelHeightはコード内で正常に動作しますが、を追加した後にのみ例外を表示します。 そして、私が探しているバインディングは、 "IsSelected"プロパティのバインディングです。私は既に問題なく、MultiselectListをObservableCollectionにバインドしています。 =) – huntert

関連する問題