我想通過datagrid中的每一行進行循環,拉出一個列值,將該值傳遞給基於方法結果的行的方法和樣式。從數據視圖獲取datagridrow WPF
找到後我不能循環訪問數據網格的行,我發現this後詳細說明它是如何可能的。
我稍微修改了一下,以便使用datarowview對象。
這個問題我現在已經是
var dgRow = grid.ItemContainerGenerator.ContainerFromItem(r) as DataGridRow;
總是返回null。
請有人建議爲什麼這是發生在我的情況,如果他們能看到一個更簡單的方法做到這一點。
如果您需要更多信息,請讓我知道。
繼承人我的代碼:
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;
}
}