4

データベースから返される値に応じて、DevExpressデータグリッドにアイコンを設定するにはどうすればよいですか

4

1 に答える 1

18

手順は次のとおりです。

  • フォーム/ウィンドウにImageCollectionを追加し、16x16のアイコンを追加します。
  • アイコンの列をグリッドに追加します。
  • 列のfieldNameをimageに設定します(好きなものは何でも)。
  • 列のUnboundTypeをObjectに設定します。
  • カラムのcolumnEditにrepositoryItemPictureEditを追加します。

上記はすべてデザイナーで行うことができます。次に、次の手順を実行します

private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
    if (e.Column == colImage1 && e.IsGetData) {
        string someValueFromDatabase = (string)gridView1.GetRowCellValue(e.RowHandle, colOne);
        if (someValueFromDatabase == "a") {
            //Set an icon with index 0
            e.Value = imageCollection1.Images[0];
        } else {
            //Set an icon with index 1
            e.Value = imageCollection1.Images[1];
        }
    }
}

ここで重要なのは、CustomUnboundColumnDataとrepositoryItemPictureEditを処理することです。

于 2010-11-29T04:23:01.360 に答える