选择后重置LongListSelector中的SelectedItem

时间:2013-09-11 06:19:43

标签: xaml mvvm windows-phone-8 caliburn.micro longlistselector

我正在使用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?

谢谢!

2 个答案:

答案 0 :(得分:0)

你必须把你的LongListSelector SelctionMode =“Multiple”,

你可以使用Gesture Tap活动获得它。

答案 1 :(得分:-1)

没有理解真正的问题但是 如果用户选择项目时选择更改事件,我认为您可以解决您的问题 -

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

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