您可以使用dataGrid的ItemContainerGenerator獲取DataGridRow
。
如果您想根據索引值來選擇行,請使用ContainerFromIndex()方法:
DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator
.ContainerFromIndex(0);
,並在情況下,要根據項目獲得行,請使用ContainerFromItem()方法:
DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator
.ContainerFromItem(item);
最後設置背景:
row.Background = Brushes.Red;
UPDATE:
容器不至的數據網格生成不在GUI可見。您需要等待生成容器,然後才能在DataGridRow上設置任何屬性。
容器我的意思是DataGridRow在DataGrid的情況下。您需要像這樣修改代碼:
var dataGrid = new DataGrid();
dataGrid.ItemsSource = BuildDataGrid();
dataGrid.ItemContainerGenerator.StatusChanged += (s, e) =>
{
if (dataGrid.ItemContainerGenerator.Status ==
GeneratorStatus.ContainersGenerated)
{
var row = (DataGridRow)dataGrid.ItemContainerGenerator
.ContainerFromIndex(0);
row.Background = Brushes.Red;
}
};
強烈建議在WPF中的程序代碼中創建UI元素。創建一個合適的ViewModel並使用適當的DataBinding。 –