DataRow から DefaultView DataRowView を取得する
-
09-06-2019 - |
質問
状況は次のとおりです。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 とその使用方法について詳しく学び、コードをテーブル中心ではなくビュー中心になるようにリファクタリングすることを検討する必要があります。
所属していません StackOverflow