Vra

Hier is die situasie: Ek het nodig om 'n WPF FixedPage teen 'n DataRow bind. Bindings werk nie teen DataRows; hulle werk teen DataRowViews. Ek nodig het om dit te doen in die mees generiese manier moontlik, as ek niks van weet en het geen beheer oor wat in die DataRow.

Wat ek nodig het, is om in staat wees om 'n DataRowView kry vir 'n gegewe DataRow. Ek kan nie die Find() metode op die DefaultView want dit neem 'n sleutel, en daar is geen waarborg die tafel sal 'n primêre sleutel stel nie.

Het enige iemand 'n voorstel met betrekking tot die beste manier om te gaan rondom dit?

Was dit nuttig?

Oplossing

nie juis 'n sexy stukkie van die kode maar hulle lyk nie 'n outomatiese manier om die ry te vind sonder gegronde herhaling die tafel wees.

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

Ander wenke

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

Dit is 'n okay antwoord. Maar as jy jouself in hierdie situasie, moet jy oorweeg om meer te leer oor DataViews en hoe dit gebruik word, dan refactor jou kode om die lig-sentriese eerder as tafel-sentriese wees.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top