C# .NET 4.5、MS Visual Studio 2012、WPF を使用。
こんにちは、このコードが最終的に機能するようになりました。基本的に、行を介して datgrid を反復処理します。
彼はそこにいるすべての WPF ウィザードを怒らせる可能性があることに注意してください!
public IEnumerable<System.Windows.Controls.DataGridRow> GetDataGridRow(System.Windows.Controls.DataGrid grid)
{
var itemsource = grid.ItemsSource as System.Collections.IEnumerable;
paretogrid.UpdateLayout();
if (null == itemsource) yield return null;
foreach (var item in itemsource)
{
var row = grid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; // null?
if (null != row) yield return row;
}
}
private void ShowArrows()
{
var rows = GetDataGridRow(paretogrid); // fetching null?
foreach (DataGridRow r in rows)
{
DataRowView rv = (DataRowView)r.Item;
}
}
ご覧のとおり、行を反復処理します。今私がしたいのは、すべての「行」で列インデックス 2 のセル値を列インデックス 4 と比較し、true または false の場合はそれに応じて列 5 を更新することです。セルごとに移動できる列を反復処理できますが、私が求めているものではありません。
foreach (DataGridColumn column in paretogrid.Columns)
それは次のようなものですか:
paretogrid.Columns[2].GetCellContent(something here) as textblock;