Frage

Ich bin nur mit Sammlungen (ObservableCollections) die ersten Schritte, und ich habe eine Wand schlagen, dass ich davon ausgegangen wäre leicht. Ich bin sicher, es ist einfach, aber ich finde einfach nicht die Antwort.

Ich habe eine WPF-Bildschirm mit einem Datagrid auf der linken Seite und Textfelder auf der rechten Seite des Bildschirms. Das Datagrid wird an der ObservableCollection gebunden (Aktivitäten) und ich kann das Datagrid klicken und nach unten und sehe meine Textfelder mit den richtigen Informationen zu aktualisieren. Ich kann dann die Informationen in den Textfeldern ändern und es zurück an die DB speichern. Alle funktioniert perfekt!

Doch wenn es darum geht, einen Datensatz zu der Sammlung hinzufügt Ich bin in Bezug auf den richtigen Ansatz verloren. Ich verwende die Add-Methode, wie unten dargestellt, aber wie kann ich zu diesem neu geschaffenen Datensatz verschieben, so dass es bearbeitet werden kann? Ich habe ein Dutzend Ansätze versucht, aber ich habe noch einen richtigen Ansatz zu finden. Die Textfelder nur bleiben auf dem letzten bearbeiteten Datensatz fokussiert. Irgendwelche Ideen?

Private Activities As ObservableCollection(Of ActivityRecord)

Private Sub AddMode()
    Dim _ActivityRecord As New ActivityRecord(0, DateTime.Now, Nothing, "", gWorkerID, "")
    Activities.Add(_ActivityRecord)
'Code to move to the newly created record should go here
War es hilfreich?

Lösung

In WPF jeder Itemscontrol Steuerung abgeleitet (Liste Ihrer Datagrid) geheim verwendet ein Derivat von Collection die Navigation zwischen den Datensätzen / Positionen zu erleichtern - in der Tat ist es die Klasse, die die liefert Währung Mechanismus, der andere Steuerelemente (wie die Textbox) ermitteln, welche Daten gebunden Artikel ist Strom .

Wenn Sie ein neues Objekt erstellen, und fügen Sie es zu Ihrem ObservableCollection, Sie eines der MoveXXX Methoden Collection die verwenden können, sich zu bewegen, dass Artikel Strom zu machen. Sie können (je nachdem, welche Art von Collection Sie erhalten) rufen auch die Add-Methode auf dem Collection, und es wird die Add-Methode auf die zugrunde liegende ObservableCollection automatisch aufrufen.

So oder so, einen Verweis auf die Collection retriving ist das Geheimnis. Sie können entweder die statische Methode der Collection verwenden (ich vergessen, seinen Namen), um die Ansicht zu holen für die Datagrid verwendet wird, oder (und das ist meine bevorzugte Methode) Sie explizit eine Listcollectionview erstellen und binden Sie Ihre Datagrid, um es anstelle des ObservableCollection .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top