Laden...

ObservableCollection und GUI Update

Erstellt von MysticEmpires vor 10 Jahren Letzter Beitrag vor 10 Jahren 689 Views
M
MysticEmpires Themenstarter:in
302 Beiträge seit 2004
vor 10 Jahren
ObservableCollection und GUI Update

Guten Tag,

ich habe da ein Problem. Ich habe ein Windows Phone Anwendung die wie folgt aufgebaut ist (Beispielhaft):

  • Klasse Familie mit Eigenschaft Mitglieder

Dann habe ich einen Auflistung dieser Familien-Klasse (Schmied,Müller,Schulz...). Die Namen der Familie zeige ich als Header ein PivotPage an (Im Load der Seite weiße ich im Code die ItemSource zu).

Dann habe ich ein ItemTemplate für das PivotItem. Dort sollen die Mitglieder der Familie angezeigt werden. Diese muss ich aber beim Laden der jeweiligen Pivot-Seite erstmal ermittel (alle vorher zuladen würde zulange dauern). Also ist die Eigenschaft "Mitglieder" eine ObservableCollection. Wenn nun das PivotItem geladen wird wird ein Funktion aufgerufen die die Mitglieder ermittelt und damit die Auflistung füllt. Meine Ansicht nach hätte sich dann die Ansich auch aktuallisieren sollen. Nur passiert das leider nicht. Was macht ich falsch?

Hier mal das XAML als Beispiel:

        <controls:Pivot Name="Pivot_Family" Title="Familien">
            <controls:Pivot.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </controls:Pivot.HeaderTemplate>
            <controls:Pivot.ItemTemplate>
                <DataTemplate>
                    <ListBox ItemsSource="{Binding Member}">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding FirstName}" />
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </DataTemplate>
            </controls:Pivot.ItemTemplate>
        </controls:Pivot>

Hier noch etwas code:

        private void Pivot_Family_LoadedPivotItem(object sender, PivotItemEventArgs e)
        {
            //# Sender ermitteln
            var piSender = (sender as Pivot);

            //# Cast erfolgreich?
            if (piSender != null)
            {
                //# BindingElement casten
                var fam= (piSender.SelectedItem as Family);

                //# Cast erfolgreich?
                if (fam!= null)
                    fam.GetMemberAsnyc();
            }
        }

Und bei "GetMemberAsnyc" wird halt die "Member" Auflistung gefüllt. Das funktioniert auch wunderbar. Nur passiert halt in der GUI nichts 😦

Gruß
Mystic

849 Beiträge seit 2006
vor 10 Jahren

Hallo,

Und bei "GetMemberAsnyc" wird halt die "Member" Auflistung gefüllt.

Nur gefüllt oder auch neu erzeugt? Wenn Du auch neu erzeugst würde ich auf ein fehlendes INotifyPropertyChanged tippen, bzw den Aufruf des selbigen.

M
MysticEmpires Themenstarter:in
302 Beiträge seit 2004
vor 10 Jahren

Hallo,

Nur gefüllt oder auch neu erzeugt? Wenn Du auch neu erzeugst würde ich auf ein fehlendes INotifyPropertyChanged tippen, bzw den Aufruf des selbigen.

Genau das war mein Problem. Oh man und ich suche ewig^^