2014-03-19 102 views
1

我有LongListMultiSelector中的項目列表 - 如何處理選定的項目?如何處理LongListMultiSelector的選定項目?

我LongListMultiSelector XAML:

<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> 

TextBlock的自來水事件處理代碼:

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) 
{ 

} 

我找到的解決方案here一部分,但是,如果至少有一個項目是選擇的問題那麼textblockTap事件不會處理 - longlist_SelectionChanged事件處理所有事情。我該如何解決這個問題?

+0

你想知道所選項目的文字? –

+2

是的,每當我點擊 –

+0

好吧請參考答案 –

回答

2

一旦您使用LongListMultiSelector,則在添加或刪除項目時觸發SelectionChanged事件。如果要執行的操作,無論項目添加/刪除,我已經成功地做這樣的(對於笑着字符串):

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 
} 

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

0

您的XAML DataTemplate。

<DataTemplate x:Key="listItemTemplate"> 
     <StackPanel Orientation="Horizontal" Margin="4,4"> 
      <TextBlock Tap="textblockTap" Margin="0,-7,0,0" Text="{Binding Name}" Style="{StaticResource PhoneTextLargeStyle}"/> 
     </StackPanel> 
    </DataTemplate> 

在您的CS頁面;

private void textblockTap(object sender, EventArgs e) 
    { 
      var file = (TextBlock)sender; 
      var ContentFile = (string)file.Text; 
      MessageBox.Show(ContentFile); 
    } 

本示例將向您顯示MessageBox中所選項目的文本。

+0

如果至少選擇了一個項目,則問題textblockTap事件無法處理 –

+0

對不起,我不能得到你。你想選擇更多的項目? –

相關問題