8

状況は次のとおりです。WPFをにバインドする必要がありFixedPageますDataRowDataRowsバインディングは;に対して機能しません。彼らはに対して働きDataRowViewsます。私は何も知らず、何が入っているかを制御できないので、可能な限り最も一般的な方法でこれを行う必要がありDataRowます。

私が必要としているのDataRowViewは、与えられたのを取得できるようにすることDataRowです。Find()このメソッドはキーを取得するため使用できませんDefaultView。また、テーブルに主キーが設定される保証はありません。

誰かがこれを回避するための最良の方法について提案がありますか?

4

2 に答える 2

6

正確にはセクシーなコードではありませんが、テーブルをループするだけで行を見つける自動化された方法ではないようです。

        DataRowView newRowView = null;
        foreach (DataRowView tempRowView in myDataTable.DefaultView)
        {
            if (tempRowView.Row == rowToMatch)
                newRowView = tempRowView;
        }
        if (newRow != null)
            UseNewRowView(newRowView);
        else
            HandleRowNotFound();
于 2011-08-08T23:35:32.837 に答える
4
row.Table.DefaultView[row.Table.Rows.IndexOf(row)]

これは大丈夫な答えです。しかし、このような状況に陥った場合は、DataView とその使用方法についてさらに学習することを検討し、テーブル中心ではなくビュー中心になるようにコードをリファクタリングする必要があります。

于 2008-08-28T14:52:16.900 に答える