Visual Studio 2012 Ulti を使用して WPF C#.NET4.5 を使用します。
古い Winforms コード:
foreach (DataGridViewRow paretoRow in ParetoGrid.Rows)
{
if ((Convert.ToInt32(paretoRow.Cells["CurrentPareto"].Value) < (Convert.ToInt32(paretoRow.Cells["NewPareto"].Value))))
{
paretoRow.Cells["pNew"].Value = downArrow
}
}
ご覧のとおり、各行を巡回すると特定のセルがチェックされ、真であれば別のセルにデータが入力されます。これは、これまで何度も使用してきた古き良き WinForms コードでした...ただし、WPF への切り替えは、私が以前に想定していたよりもはるかに異なっていました。
DataGrid
プロパティが含まれていませんRow
。代わりに、以下を使用する必要があると思います。
DataGridRow paretoRow in paretogrid.Items
しかし、今誰がその細胞を手に入れられるのか、いまだに分からない。
そこで質問なのですが、構文の変更は必要でしょうか。必要であれば、どこで変更すればよいのでしょうか。あるいは、WPF のデータグリッドは WinForms よりもオブジェクトを操作することが多いため、「行」というプロパティを使用する必要がないのではないかと考えています。その場合、この例で使用するために知っておくべきロジック/構文は何でしょうか。
皆さん、お待ちいただきありがとうございます。銀行休業日に家に帰ったら、WPF を少し調べて、実際にどれくらい違うのか確認してみようと思います。
ベストアンサー1
人々はこれを複雑にしすぎているようですが、これは私にとってはうまくいきました:
foreach (System.Data.DataRowView dr in yourDataGrid.ItemsSource)
{
MessageBox.Show(dr[0].ToString());
}