Frage

Hier ist die Situation:Ich muss ein WPF binden FixedPage gegen a DataRow.Bindungen funktionieren nicht dagegen DataRows;sie arbeiten dagegen DataRowViews.Ich muss dies so allgemein wie möglich tun, da ich nichts darüber weiß und keine Kontrolle darüber habe, was darin enthalten ist DataRow.

Was ich brauche, ist in der Lage zu sein, eine zu bekommen DataRowView für ein gegebenes DataRow.Ich kann das nicht verwenden Find() Methode auf der DefaultView denn dafür ist ein Schlüssel erforderlich und es gibt keine Garantie dafür, dass die Tabelle über einen Primärschlüsselsatz verfügt.

Hat jemand einen Vorschlag, wie man das am besten umgehen kann?

War es hilfreich?

Lösung

Nicht gerade ein sexy Stück Code, aber es scheint keine automatisierte Möglichkeit zu geben, die Zeile zu finden, ohne nur die Tabelle zu durchlaufen.

        DataRowView newRowView = null;
        foreach (DataRowView tempRowView in myDataTable.DefaultView)
        {
            if (tempRowView.Row == rowToMatch)
                newRowView = tempRowView;
        }
        if (newRow != null)
            UseNewRowView(newRowView);
        else
            HandleRowNotFound();

Andere Tipps

row.Table.DefaultView[row.Table.Rows.IndexOf(row)]

Das ist eine gute Antwort.Wenn Sie sich jedoch in dieser Situation befinden, sollten Sie darüber nachdenken, mehr über DataViews und deren Verwendung zu erfahren und dann Ihren Code so umzugestalten, dass er ansichtszentriert statt tabellenzentriert ist.

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