ListView.ContainerFromItem gibt null zurück, nachdem ein neues Element in Windows 8.1 Store XAML hinzugefügt wurde

Ich habe eine einfache ListView ohne Elementvorlage und das SelectionChanged-Ereignis-Setup:

    <ListView x:Name="list1" HorizontalAlignment="Left"
              Height="556"
              Margin="209,93,0,0"
              VerticalAlignment="Top"
              Width="1033"
              SelectionChanged="list1_SelectionChanged" />

    private void list1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {            
        var container = (sender as ListView).ContainerFromItem(e.AddedItems.First());
        var presenter = VisualTreeHelper.GetChild(container, 0);            
    }

Ich habe auch eine Testklasse wie folgt:

class Test
{
    public string FirstName { get; set; }
    public string Surname { get; set; }
}

Jetzt habe ich im Konstruktor für die Seite den folgenden Code, der eine ObservableCollection der Testelemente erstellt, einige hinzufügt und diese dann als ItemSource der ListView festlegt:

ObservableCollection<Test> testCollection;

public MainPage()
{
    this.InitializeComponent();

    testCollection = new ObservableCollection<Test>();
    testCollection.Add(new Test { FirstName = "Bob", Surname = "Smith1" });
    testCollection.Add(new Test { FirstName = "Bob", Surname = "Smith2" });
    testCollection.Add(new Test { FirstName = "Bob", Surname = "Smith3" });

    list1.ItemsSource = testCollection;
}

Wenn ich nun ein Element in der Liste auswähle und das SelectionChanged-Ereignis ausgelöst wird, enthält die Containervariable das ListViewItem wie erwartet.

Jetzt habe ich auch einen Button im Formular. Hier ist das Button-Klick-Ereignis:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        testCollection.Add(new Test { FirstName = "Bob", Surname = "Smith4" });

        list1.SelectedIndex = list1.Items.Count - 1;
    }

Die letzte Zeile wählt das neue Element aus und das SelectionChanged-Ereignis wird ausgelöst, aber dieses Mal ist die Containervariable null.

Kann mir jemand sagen, warum dies null ist und wie ich das umgehen kann?

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage