Elementy menu kontekstowego pakietu Windows Phone Toolkit są powiązane z niewłaściwym obiektem, gdy element jest usuwany, a następnie dodawany

Właśnie spotkałem poważny problem z menu kontekstowym, którego nie mogę rozwiązać przez wiele godzin.

Aby odtworzyć problem, stworzyłem nową aplikację Panorama z szablonami aplikacji dla Windows Phone 8 w Visual Studio 2012. Zainstalowałem zestaw narzędzi Windows Phone za pomocą narzędzia użytkowego i dodałem menu kontekstowe w szablonie danych pierwszego selektora długiej listy, który jest powiązany z elementami

<StackPanel Margin="0,-6,0,12">
    <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeExtraLarge}"/>
    <toolkit:ContextMenuService.ContextMenu>
        <toolkit:ContextMenu>
            <toolkit:MenuItem Header="{Binding LineOne}" Click="MenuItem_Click_1" Tag="{Binding}">
            </toolkit:MenuItem>
        </toolkit:ContextMenu>
    </toolkit:ContextMenuService.ContextMenu>
</StackPanel>

Ustawiłem nagłówek na właściwość LineOne, aby ułatwić debugowanie. Załączam następujące wydarzenie:

private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{
    var itemViewModel = (ItemViewModel)((MenuItem)sender).Tag;
    App.ViewModel.Items.Remove(itemViewModel);
    App.ViewModel.Items.Add(new ItemViewModel { LineOne = "Test", LineTwo = "Test", LineThree = "Test" });
}

Używam aplikacji i używam menu kontekstowego, aby usunąć pierwszy element. Pierwszy element znika, a nowy element o nazwie Test pojawia się na dole listy zgodnie z oczekiwaniami. Jeśli trzymam ten nowy element, pozycja menu jest powiązana z „runtime one” (element, który został usunięty).

To był najprostszy kod, jaki mogłem odtworzyć, ale w mojej prawdziwej aplikacji mam prawie ten sam problem z bardziej znaczącym kodem do dodawania i usuwania różnych metod, a nawet różnych stron. Miałem polecenie powiązane, ale ponieważ powiązanie danych jest nieprawidłowe, polecenie jest uruchamiane w niewłaściwym modelu widoku z niewłaściwym parametrem.

Jakiś pomysł dlaczego tak się dzieje?

questionAnswers(2)

yourAnswerToTheQuestion