2013-04-25 109 views
1

有没有办法修复选择更改事件的已知错误,如果再次点击相同的项目,则选择不起作用。SelectionChanged事件未引发

为了给出进一步的背景,我的场景是,我有四个项目在我的数据透视页,当我点击其中一个项目,我将导航到另一个页面。现在我的困境是,当我再次选择相同的项目,导航不起作用或没有任何反应。

请让我知道您的建议的修复程序,多谢提前。

<ListBox x:Name="lbviewlist" ItemsSource="{Binding items}"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="selectionchanged"> 
         <Command:EventToCommand Command ="{Binding ItemListCommand }" PassEventArgsToCommand="True" /> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock TextWrapping="Wrap" Text="{Binding itemName}" FontSize="30" Margin="10,0,0,0" Style="{StaticResource PhoneTextTitle2Style}" Foreground="CadetBlue"/> 
          <TextBlock TextWrapping="Wrap" Text="{Binding itemDescription}" FontSize="20" Margin="15,5,0,10"/> 
          </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
+2

它不是一个错误,'SelectedChanged'完全是它应该的,它在选择改变时触发,如果选择了相同的元素,它没有改变,所以它不会触发。您可能需要在您的Item或ListBox本身上使用MouseEvent处理此问题 – 2013-04-25 04:21:39

+0

@ sa_ddam213请教我如何做到这一点?我只是这个领域的新手,不知何故很难理解这个概念。你的意思是我应该将选择更改事件更改为鼠标事件吗?我正在使用MVVM – JennyJane 2013-04-25 05:39:31

回答

0

一个很好的替代方法是包括所有的按钮,它的风格是无形的,这样你永远不会看到它里面的每个项目的内容,但它涵盖它封装物品的表面。如果您使用MVVM,则可以将相同的命令属性绑定到每个“按钮”,并将按钮的DataContext(您的数据项)绑定到命令参数。然后,每当你点击一个物品时,你就会得到每一次发射的命令。 您可能想要将项目控件更改为简单的内容,以便选择更改事件不会妨碍您的工作。

+0

如何包含按钮内的所有项目并使其不可见?请参阅我的XAML以上 – JennyJane 2013-04-25 05:36:24

+0

我能够将内容放入按钮中,但事件不会触发?任何想法? – JennyJane 2013-04-25 08:09:58

+0

为了清楚起见,我们在这里讨论按钮'click'事件,而不是组合框的'SelectionChanged'事件。 – 2013-06-03 09:24:33