Xaml 选择后在LongListSelector中重置SelectedItem

Xaml 选择后在LongListSelector中重置SelectedItem,xaml,mvvm,windows-phone-8,caliburn.micro,longlistselector,Xaml,Mvvm,Windows Phone 8,Caliburn.micro,Longlistselector,我用的是Caliburn.Micro和LongListSelector。因为绑定SelectedItem是一个问题,所以我对SelectionChanged事件执行操作。问题是,返回列表后,当我再次单击同一项时,它已被选中。所以事件不会发生。我可以将SelectedIndex设置为-1或其他什么,但在Caliburn.Micro中,我无法访问UI控件。这就是MVVM的重点,不是吗?!:) 这是我的XAML <LongListSelector x:Name="NewsItems" Item

我用的是Caliburn.Micro和LongListSelector。因为绑定SelectedItem是一个问题,所以我对SelectionChanged事件执行操作。问题是,返回列表后,当我再次单击同一项时,它已被选中。所以事件不会发生。我可以将SelectedIndex设置为-1或其他什么,但在Caliburn.Micro中,我无法访问UI控件。这就是MVVM的重点,不是吗?!:)

这是我的XAML

<LongListSelector x:Name="NewsItems" 
ItemsSource="{Binding NewsItems}" 
cal:Message.Attach="[Event SelectionChanged] = [NavigateToArticle($eventArgs)]" />

如何解决这个问题?当无法从代码访问LongListSelector时,如何重置SelectedItem


谢谢

您必须将您的LongListSelectionMode=“Multiple”


您可以使用手势点击事件获得它。

不了解真正的问题,但 我认为,如果用户每次选择项目时都触发选择更改事件,则可以解决您的问题-

    private void productList_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        LongListSelector productList= (LongListSelector)sender;
        if (productList.SelectedItem == null)
            return;

        //Write your code here

        //For Tapping many times..
        productList.SelectedItem = null;
    }

上述代码将使选择更改事件在每次选择相同项目时触发。

LongListSelector没有SelectionMode?我使用的是MVVM,因此无法访问productList,它不在我的ViewModel中。尤其是Caliburn.Micro,你不能,即使你想。