3

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

谢谢!

4

2 回答 2

0

你必须把你的 LongListSelector SelctionMode="Multiple",

或者

您可以使用 Gesture Tap 事件获取它。

于 2013-09-11T06:30:36.217 回答
-1

Did not understood real problem but I think you can solve your problem if selection change event fire every time when user select item-

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

The above code will make selection change event to fire on selection of same item every time.

于 2013-09-11T10:28:39.410 回答