2013-12-09 75 views
0

我想要:如何處理LongListMultiSelector的選定項目?

  • 當用戶點擊一個項目時打開郵件。
  • 和刪除多封電子郵件,當用戶選擇多個郵件

所以我選用LongListMultiSelector

在建LongListSelector,我處理SelectionChanged事件是這樣的:

private void mails_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    var selectedItem = mailsLongListSelector.SelectedItem as Mail; 

    if (selectedItem == null) 
     return; 
    ... 
    mailsLongListSelector.SelectedItem = null; 
} 

正是我想要像wptoolkit的LongListMultiSelector該功能。就像您選擇一封電子郵件打開並閱讀它一樣。

LongListMultiSelector's SelectionChanged發生在您點擊項目左側並出現複選框時。這不是我想要的。

的問題是: 當用戶點擊LongListMultiSelector的一個項目我怎麼能執行的東西嗎?謝謝。

回答

3

你可以試試這個。如果這是你LongListSelector

<tkit:LongListMultiSelector Name="longlist" SelectionChanged="longlist_SelectionChanged"> 
    <tkit:LongListMultiSelector.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Title}" FontSize="32" Tap="TextBlock_Tap"/> 
     </DataTemplate> 
    </tkit:LongListMultiSelector.ItemTemplate> 
</tkit:LongListMultiSelector> 

,它有一個ItemTemplate,你可以檢測項的水龍頭。

private void TextBlock_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    var itemTapped = (sender as FrameworkElement).DataContext as Book; 
} 

而且還有一旦您使用LongListMultiSelector,SelectionChanged事件被觸發時,項目被添加或刪除一個選擇改變

private void longlist_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 

} 
+0

哈,有時候我們的心太過分了。我有一個小時想着如何處理這個問題。多麼愚蠢的我:\ ...謝謝igrali – user2970840

+0

首先TextBlock_Tap事件發生,但它不起作用,因爲longlist_SelectionChanged事件處理所有的行動。我該如何解決這個問題? –

+0

如果至少選擇了一個項目,則textblockTap事件無法處理 - longlist_SelectionChanged事件處理所有內容。 –

0

。如果要執行的操作,無論項目添加/刪除,我已經成功地做這樣的(一個簡單的字符串):

private void longlist_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    string selectedItem = String.Empty; 
    if (e.AddedItems.Count > 0) selectedItem = e.AddedItems[0] as string; 
    else selectedItem = e.RemovedItems[0] as string; 
    MessageBox.Show(selectedItem); // do your work 
} 

而項都受到竊聽分別選擇它應該運行,但這種方法會在更多項目同時添加/刪除時出現問題 - 如果您需要它,那麼您也應該處理這個問題。

相關問題