TextBlock und Combobox an Child-Daten binden.

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Jeiss.

    TextBlock und Combobox an Child-Daten binden.

    Hallo alle zusammen.

    Ich möchte gerne auf einem Window eine Combobox und einen Textblock an Child-Daten binden. Ich versuche mal zu schildern was ich mit Child-Daten meine. Meine Daten verwalte ich in einer separaten Klasse. Diese Klasse enthält zwei Eigenschaften. Für die Daten der Maste-Tabelle wäre da:

    VB.NET-Quellcode

    1. Public ReadOnly Property navigationView As ListCollectionView

    und für die Child-Daten wäre da:

    VB.NET-Quellcode

    1. Public ReadOnly Property ViewPhones As BindingListCollectionView
    Der Name der Klasse welche diese Eigeschaften besitzt hab ich einfach mal "DataClass" genannt.
    Nun versuche ich eine Combobox und einen TextBlock an die Property "VeiwPhones" zu binden. Diese Ansicht enthält einfach nur Telefonnummern von Kontakten aus der anderen "Parent-Anicht": navigationView
    Ganz scheitert das Ganze nicht! Die Combobox scheint zu funktionieren. Sie zeigt mir die verschiedene Telefonnummern der Kontakte aus der Parent-Ansicht an. Der TextBlock zeigt mir auch eine zum Kontakt passende Nummer an. Wenn ich zu einem anderen Kontakt wechsle, dann zeigt mir der TextBlock auch eine zum Kontakt passende Nummer an. Aber leider zeigt er mir immer nur eine einzige Nummer an.(Die meisten dieser Kontakte haben mehrere. Heim, Handy, Arbeit...) Das Problem ist eigentlich, dass wenn ich mit der Combobox einen anderen Telefontyp (Heim, Handy...u.s.w.) wähle, der TextBlock die neue Telefonnummer nicht anzeigt, sondern schön immer die gleiche Nummer anzeigt.......Hier mal der Code mit dem ich zu binden versuche.

    XML-Quellcode

    1. <StackPanel Grid.Column="2" Grid.Row=" 3" Grid.RowSpan="2" >
    2. <ComboBox ItemsSource="{Binding Path=ViewPhones}" DisplayMemberPath="TelefonTyp" SelectedItem="TelefonTyp" >
    3. </ComboBox><TextBox Grid.Row="3" Grid.Column="2" Text="{Binding Path=ViewPhones/Telefon,
    4. ValidatesOnExceptions=true, NotifyOnValidationError=true}"/></StackPanel>
    Und etwas weiter oben im gleichen window(Mainwindow) der DataContext

    XML-Quellcode

    1. <DockPanel DataContext="{Binding Source={StaticResource vm}}">
    Wo "vm" die Referenz auf die Klasse mit den Daten ist.
    Kann mir bitte jemand da weiter helfen?
    Danke,
    Jeiss
    hallo, ich danke dir für deinen gut gemeinten Rat. Doch würde ich es lieber vorziehen nur eine einzige TextBox in Verbindung mit einer Combobox, zum auswählen des Teltfontyps, zu verwenden. Zu beginn, bevor ich meine Daten in einer separaten Klasse isoliert habe, befanden diese sich im Code-behind der Mainwinow. Da verwendete ich anstatt der beiden "View-Properties" zwei CollectionviewSources, eine für die Master-Daten und eine für die Telefon-Daten. Und das unglaubliche ist dass das damals einwandfrei mit der Combobox zum auswählen des Telefontyps geklappt hat. Bloss weiss ich heute nicht mehr wie ich das damals gemacht habe, und wodurch das jetzt nicht mehr klappt...... ?(

    Und jetzt bleibt mir nur noch zu hoffen dass ich mit Hilfe des Forums doch noch rausfinden kann wie diese TextBox gebunden werden sollte damit das auch klappt.

    Danke,

    Jeiss
    also mir fällt da nurnoch multibinding ein - aber dassis bisserl umständlich.

    wie gesagt: die Useability eines solchen Addressbuchs scheint mir ziemlich mies: du wählst eine Addresse an, und bekommst nicht gleich alle Telefonnummern, sondern musst dich da auch noch durchklicksen.