質問

状況は次のとおりです。WPFをバインドする必要がある FixedPage に対して DataRow. 。バインディングは無効です DataRows;彼らは反対して働く DataRowViews. 。私はファイルの内容について何も知らず、制御できないため、これを可能な限り最も一般的な方法で行う必要があります。 DataRow.

私に必要なのは、 DataRowView 与えられたもののために DataRow. 。使えない Find() のメソッド DefaultView なぜなら、これにはキーが必要であり、テーブルに主キーが設定されているという保証がないからです。

これを回避する最善の方法について誰かが提案を持っていますか?

役に立ちましたか?

解決

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

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

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top