簡體   English   中英

如何處理LongListMultiSelector的選定項目?

[英]How do I handle a selected item of 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)
{

}

我在這里找到了解決方案的一部分,但是,如果選擇了至少一項,那么問題就不解決了,那么textblockTap事件將無法處理-longlist_SelectionChanged事件將處理所有問題。 我該如何解決?

一旦使用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
}

它可以在通過單擊分別選擇項目時運行,但是當同時添加/刪除更多項目時,此方法會出現問題-如果需要,則也應進行處理。

您的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中所選項目的文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM