WPF的DataGrid属实麻烦,找了半天才找到正确的方法,留作笔记
for (int i = 0; i < this.Data3.Items.Count; i++) { DataRowView drv = Data3.Items[i] as DataRowView; Data3.UpdateLayout(); DataGridRow row = (DataGridRow)this.Data3.ItemContainerGenerator.ContainerFromIndex(i); if (i == 1) { DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(row); DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(1); Uri uri = new Uri("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=187114331,1224108843&fm=26&gp=0.jpg"); BitmapImage bimg = new BitmapImage(uri); cell.Background = new ImageBrush(bimg); cell.Foreground = new SolidColorBrush(Colors.Red); } } public static T GetVisualChild<T>(Visual parent) where T : Visual { T childContent = default(T); int numVisuals = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < numVisuals; i++) { Visual v = (Visual)VisualTreeHelper.GetChild(parent, i); childContent = v as T; if (childContent == null) { childContent = GetVisualChild<T>(v); } if (childContent != null) { break; } } return childContent; }
Comments | NOTHING