2013-01-02 2 views
4

내 WP8 응용 프로그램에서 사용자가 목록에서 여러 항목을 선택할 수있는 기능인 표준 메일 응용 프로그램과 매우 유사한 기능을 구현하고 싶습니다. 나는이 동작을 설명하기 위해 스크린 샷을 제공했습니다다중 선택 항목 목록 구현

정상 상태 :
Normal state

사용자 항목의 왼쪽 모서리를 탭과 파란색이된다 : User taps item's left corner and it becomes blue

항목 Item is selected


를 선택

제 질문은이 다중 선택 기능이 일부 컨테이너 제어에 대한 표준 옵션인지 또는 일부 사용자 정의 프로그래밍을 이걸 훔쳐? 후자의 경우 이것을 구현하기 위해 취할 수있는 최선의 방법은 무엇입니까? 생각을 공유하십시오.

+0

Anton, 나는 주어진 listview의 체크 박스 위에 show hide animation을 수행해야하는 것과 똑같은 요구 사항을 가지고 있습니다. 솔루션을 찾은 경우 공유하십시오 –

답변

11

WP8 다중 선택의 경우 Windows Phone Toolkit의 LongListMultiSelector를 사용해야합니다.

LongListMultiSelector here (코드 뒤에 here)을 사용하는 방법에 대한 코드 샘플을 찾을 수 있습니다. 다음은 관련 XAML 코드 조각은 다음과 같습니다

<phone:PivotItem x:Name="BuddiesPivotItem" Header="Std longlistmultiselector"> 
     <toolkit:LongListMultiSelector x:Name="buddies" Background="Transparent" 
       Margin="0,-8,0,0" 
       ItemsSource="{StaticResource buddies}" 
       LayoutMode="List" 
       IsGroupingEnabled="True" 
       HideEmptyGroups="True" 
       JumpListStyle="{StaticResource BuddiesJumpListStyle}" 
       GroupHeaderTemplate="{StaticResource BuddiesGroupHeaderTemplate}" 
       ItemTemplate="{StaticResource BuddiesItemTemplate}" 
    /> 
    </phone:PivotItem> 

    <phone:PivotItem x:Name="GridModeItem" Header="Grid mode"> 
     <toolkit:LongListMultiSelector x:Name="GridSelector" 
       ItemsSource="{StaticResource PicturesAlbum}" 
       IsGroupingEnabled="False" 
       GridCellSize="210,180" 
       LayoutMode="Grid" 
       HideEmptyGroups="True" 
       ItemTemplate="{StaticResource PictureItemTemplate}" 
       IsSelectionEnabledChanged="OnGridSelectorIsSelectionEnabledChanged" 
       SelectionChanged="OnGridSelectorSelectionChanged" 
     /> 
    </phone:PivotItem> 

당신이이 코드를 실행

는 다음을 볼 수 있습니다 니펫을 :

LongListMutliSelector print screen

당신은 윈도우 폰 8 툴킷 here에 대한 자세한 내용을보실 수 있습니다. LonglistmultiSelector 내 툴킷에없는

+0

이것은 아주 좋습니다, 감사합니다! – Anton

2

.. 내가 다음 코드를 실행하면

가 : 오류 얻을 경우

<toolkit:LongListMultiSelector x:Name="EmailList" 
               Margin="0,14,-12,0" 
               ItemsSource="{StaticResource EmailCollection}" 
               LayoutMode="List" 
               SelectionChanged="OnEmailListSelectionChanged" 
                  IsSelectionEnabledChanged="OnEmailListIsSelectionEnabledChanged" 
               ItemTemplate="{StaticResource EmailItemTemplate}" 
               ItemInfoTemplate="{StaticResource EmailItemInfoTemplate}" 
      /> 

: 오류 1 이름은 "LongListMultiSelector"네임 스페이스에 존재하지 않는 "clr-namespace : Microsoft.Phone.Controls; assembly = Microsoft.Phone.Controls.Toolkit".

+0

어쩌면 MainPage.xaml 맨 위에있는 다른 xmlns 선언 사이에 다음 줄을 추가해야합니다. xmlns : toolkit = "clr-namespace : Microsoft.Phone.Controls; assembly = Microsoft.Phone.Controls.Toolkit" – triandicAnt