2013-04-25 91 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

相關問題