私は、データグリッドの各行をループし、列の値を引き出し、この値をメソッドに渡し、メソッドの結果に基づいてその行をスタイル設定しようとしています。datarowviewからdatagridrowを取得するWPF
私が見つけた後は、データグリッドの行をループするだけで、私はthisの投稿がどのように可能かを詳述しています。
私はdatarowviewオブジェクトで作業するように少し修正しました。
私が今持っている問題は、
var dgRow = grid.ItemContainerGenerator.ContainerFromItem(r) as DataGridRow;
は常にnullを返しているということです。
私の場合、なぜこれが起こっているのか、簡単なやり方が分かるのか、誰かに助言してください。
これ以上情報が必要な場合はお知らせください。
HERESに私のコード:
private void colorArchived(DataGrid grid , GX3MaterialSelectionData data)
{
var row = GetDataGridRows(grid);
foreach (DataRowView r in row)
{
var dgRow = grid.ItemContainerGenerator.ContainerFromItem(r) as DataGridRow;
int val = int.Parse(r.Row[0].ToString());
if (data.IsArchived(val))
{
// style will be defined in xaml
dgRow.Style = mystyle;
}
}
}
public IEnumerable<DataRowView> GetDataGridRows(DataGrid grid)
{
var itemsSource = grid.ItemsSource as IEnumerable;
if (null == itemsSource) yield return null;
foreach (var item in itemsSource)
{
var row = item;
if (null != row) yield return (DataRowView)row;
}
}