Announcement

Collapse
No announcement yet.

DataGrid/DataView aktuelle Position zur Bearbeitung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGrid/DataView aktuelle Position zur Bearbeitung

    Hallo Leute,

    ich habe folgendes Problem.

    Über einen DataAdapter und ein DataSet fülle ich eine DataView und binde diese über "DataSource" an ein DataGrid.

    Jetzt möchte ich, dass einzelne Datensätze aus der Tabelle bearbeitet werden können.

    Dazu habe ich ein weiteres Formular erstellt, auf dem ich die entsprechenden Textboxen über eine DataTable anbinde.

    Wenn ich jetzt einen Datensatz bearbeiten möchte, muss ich ja an die entsprechende Stelle springen.

    Das mache ich über Binding-Objekt:

    bindingobj.BindingManagerBase.Position = position;

    Wenn ich jetzt als Position die Eigenschaft "CurrentRowIndex" des DataGrid übergeben, funktioniert das erstmal problemlos. Wenn ich allerdings die Daten im DataGrid vorher umsortiere natürlich nicht mehr.

    Wie kann ich die entsprechende Position ermitteln, die ein Datensatz in der DataView hat?

    Gruß
    Daniel

  • #2
    Einfach über den Currency-Manager des DataViews, der an das DataGrid gekoppelt ist:

    <pre>
    //1.)
    aCM = (CurrencyManager)BindingContext[DataView_DataGrid];
    int CurrentPosition = aCM.Position; //So ist die Position bestimmbar

    //2.)
    //So ist z.B. im Formular nutzbar
    DataRowView aDRV = aCM.Current as DataRowView;
    DataView aDV_Daten = aDRV.DataView;
    this.BindingContext[aDV_Daten].Position = aCM.Position;

    // DataBindings
    this.Textbox1.DataBindings.Add("Text",aDV_Daten,"S palte1_Tabelle1";
    </pre>

    der in der ersten Zeile ermittelte CurrencyManager kann dann an ein Formular übergeben werden (überladener Constructor oder Eigenschaft) und dort wie unter 2. eingesetzt werden

    Comment


    • #3
      Hallo Henry,

      danke für Deinen Tipp.

      Jetzt klappt es wunderbar.

      Gruß
      Danie

      Comment

      Working...
      X