У меня есть две страницы, скажем Main.xaml
и Details.xaml
. На каждой странице есть ListBox, и я устанавливаю каждую из них в коллекцию в ViewModel (та же коллекция). Странная вещь в том, что когда я выбираю элемент вНа странице сведений он вызывает обработчик события SelectionChanged
на странице Main
и странице Details
. Это ошибка?
Я решил проблему, отсоединив SelectionChanged
обработчик событий в методе OnNavigatedFrom
()..
РЕДАКТИРОВАТЬ
В Main.Xaml у меня есть что-то вроде ниже:
<ListBox Name="MainDataListBox" Margin="8,113,8,8" ItemsSource="{Binding DataList}" SelectionChanged="MainDataListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Border BorderThickness="3" BorderBrush="#A5FFFFFF" Width="80" Margin="0,20,0,20" Height="60">
<Image Source="{Binding ImageUrl, Mode=OneWay}" VerticalAlignment="Stretch" Margin="0,0,0,0" Width="80" Height="60" Stretch="Fill" />
</Border>
<TextBlock TextWrapping="Wrap" Text="{Binding Title}" FontSize="40" FontWeight="Normal" VerticalAlignment="Center" Margin="30,0,0,0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
В Details.xaml также у меня есть такой же ListBox:
<ListBox Name="DetailDataListBox" Margin="8,113,8,8" ItemsSource="{Binding DataList}" SelectionChanged="DetailDataListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Border BorderThickness="3" BorderBrush="#A5FFFFFF" Width="80" Margin="0,20,0,20" Height="60">
<Image Source="{Binding ImageUrl, Mode=OneWay}" VerticalAlignment="Stretch" Margin="0,0,0,0" Width="80" Height="60" Stretch="Fill" />
</Border>
<TextBlock TextWrapping="Wrap" Text="{Binding Title}" FontSize="40" FontWeight="Normal" VerticalAlignment="Center" Margin="30,0,0,0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
На обеих страницах Main и Details есть отдельные EvenHandlers MainDataListBox_SelectionChanged
и DetailDataListBox_SelectionChanged
.
Проблема заключается в том, что при выборе элемента на странице сведений вызывается MainDataListBox_SelectionChanged
сначала а потом DetailDataListBox_SelectionChanged
.Также моя viewmodel является статической в App.cs, и я устанавливаю контекст данных обеих этих страниц для одной и той же viewmodel.
Спасибо и С уважением
vaysage