我在GridView中有一个Gridview和一个RepositoryItemGridLookUpEdit 我想在RepositoryItemGridLookUpEdit中显示一个CustomDisplayText
private void rgluePerson_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
var person = rgluePerson.GetRowByKeyValue(e.Value) as Person;
var name = person.Name;
var surname = person.Surname;
e.DisplayText = name + ", " + surname;
}
}
问题是人名取决于同一行中的另一个单元格(在主Gridview中),我不知道如何处理当前的Gridview行(当前行不起作用,因为我需要正在处理的那一行)......我不能使用gridView事件因为它会改变单元格值,但我想改变Text值。 有谁知道怎么做?
答案 0 :(得分:1)
您无法获取CustomDisplayText
事件正在处理的行,因为没有包含当前行的此类字段或属性。您只能将此事件用于焦点行。为此,您必须检查发件人是否为GridLookUpEdit
的类型:
private void rgluePerson_CustomDisplayText(object sender, CustomDisplayTextEventArgs e)
{
if (!(sender is GridLookUpEdit))
return;
var anotherCellValue = gridView1.GetFocusedRowCellValue("AnotherCellFieldName");
//Your code here
e.DisplayText = yourDisplayText;
}
对于没有聚焦的行,您只能使用ColumnView.CustomColumnDisplayText
事件:
private void gridView1_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
{
if (e.Column.ColumnEdit != rgluePerson)
return;
var anotherCellValue = gridView1.GetListSourceRowCellValue(e.ListSourceRowIndex, "AnotherCellFieldName");
//Your code here
e.DisplayText = yourDisplayText;
}