新しい列をXtraGrid
追加し、そのColumnEdit
プロパティを に 設定しましたRepositoryItemPictureEdit
。を使用して画像を設定しようとしましたRepositoryItemPictureEdit1.Appearance.Image
が、フォームのロード後に画像が入力されません。なぜですか?
私は2011年版を持っています
新しい列をXtraGrid
追加し、そのColumnEdit
プロパティを に 設定しましたRepositoryItemPictureEdit
。を使用して画像を設定しようとしましたRepositoryItemPictureEdit1.Appearance.Image
が、フォームのロード後に画像が入力されません。なぜですか?
私は2011年版を持っています
私が推測するように、あなたは正しい方法で制御するために画像を割り当てていません。このDevExpressKBスレッドを確認できます-PictureEditインプレースエディターを使用してGridColumnに「画像データなし」のテキストが表示されるのはなぜですか?
ソース:RepositoryItemPictureEditに画像を割り当てる
場合、
このアプローチも使用できます
。1)DataTableにこのフィールドが含まれているため、列のFieldNameプロパティを「Image」に
設定します。2)Image DataColumnタイプをImage値に設定します
。3)コードを変更します。画像をバイト配列に変換しないでください。
以下のように設定してください。
RepositoryItemPictureEdit pictureEdit = gridControl1.RepositoryItems.Add("PictureEdit") as RepositoryItemPictureEdit;
pictureEdit.SizeMode = PictureSizeMode.Zoom;
pictureEdit.NullText = " ";
gridView1.Columns["Picture"].ColumnEdit = pictureEdit;
エディターに画像をロードさせるには、基になるデータ型がRepositoryItemPictureEdit.PictureStoreModeプロパティ値に対応している必要があります
セルに画像を表示したい場合は、CustomDrawCellイベントを使用できます
これImageStream
が画像を保存するプロパティです。
public Stream ImageStream { get; set; }
以下のように使用できます。
if (profile != null)
{
imageStream = MyObj.ImageStream; // this image saved as stream
}
}
if (imageStream != null)
{
e.Graphics.DrawImage(System.Drawing.Image.FromStream(imageStream), e.Bounds);
if (cellValue.Condition== "XXXX")
{
e.Graphics.DrawRectangle(e.Cache.GetPen(Color.Red), e.Bounds);
}
e.DisplayText = text;
Rectangle r = e.Bounds;
Rectangle w = new Rectangle(r.X, r.Y - 5, r.Width, r.Height);
//Draw the cell value
e.Appearance.DrawString(e.Cache, e.DisplayText, w);
e.Bounds.Inflate(-2, -2);
}
その他の参考資料:
グリッドセルにアイコンを配置する
方法データソースに画像へのリンクのみが含まれている場合にグリッド列に外部画像を表示する方法
RepositoryItemPictureEdit画像の読み込み
repositoryitemPictureEditRepositoryItemPictureEditの
デフォルトの空の画像に画像を読み込む方法