Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ObservableCollection und GUI Update
MysticEmpires
myCSharp.de - Member



Dabei seit:
Beiträge: 303

Themenstarter:

ObservableCollection und GUI Update

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Hallo,
Zitat
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.
private Nachricht | Beiträge des Benutzers
MysticEmpires
myCSharp.de - Member



Dabei seit:
Beiträge: 303

Themenstarter:

beantworten | zitieren | melden

Zitat von unconnected
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^^
private Nachricht | Beiträge des Benutzers