2013-04-25 1 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' делает именно то, что она должна, она срабатывает при изменении выбора, если тот же самый элемент выбран, он не изменился, поэтому он не срабатывает. Возможно, вам придется справиться с этим с помощью одного из MouseEvents на вашем элементе или в самом элементе ListBox. –

+0

@ sa_ddam213 Просьба научить меня, как это сделать? Я просто новичок в этой области, и мне как-то трудно понять концепцию. Вы имеете в виду, что я должен изменить событие смены выбора на события мыши? Я использую MVVM, кстати, – JennyJane

ответ

0

Хороший альтернативный подход должен включать все содержимое в каждой позиции внутри кнопки, которая стилизованная быть невидимыми, так что вы никогда не видели, но она покрывает поверхность элемента он инкапсулирует. Если вы используете MVVM, вы можете привязать одно и то же свойство команд к каждой из ваших «кнопок» и привязать DataContext кнопки (ваш элемент данных) к параметру команды. Тогда всякий раз, когда вы нажимаете на элемент, вы каждый раз получаете команду. Возможно, вы захотите изменить свой элемент управления на что-то простое, чтобы изменения, измененные событиями, не мешали.

+0

Как я могу включить все элементы внутри кнопки и сделать ее невидимой? Пожалуйста, см. Мой XAML выше – JennyJane

+0

Я смог разместить контент в кнопке, однако событие не стреляет? Есть идеи? – JennyJane

+0

Чтобы быть понятным, мы говорим о событии кнопки «click» здесь, а не о событии «SelectionChanged» в поле со списком. –

Смежные вопросы