我正在使用DevExpress 15.2的gridLookUpEdit来显示数据。我已经解决了以这种方式显示多列选定值的问题。
private void gridLookUpEdit_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
GridLookUpEdit edit = sender as GridLookUpEdit;
int theIndex = edit.Properties.GetIndexByKeyValue(edit.EditValue);
if (edit.Properties.View.IsDataRow(theIndex))
{
someObject row = (someObject)edit.Properties.View.GetRow(theIndex);
e.DisplayText = row.value1 + ": " + row.value2 + " " +row.value3;
}
}
正如您所看到的,我正在使用3个不同的单元格值来附加自定义显示文本。我想对默认值做同样的事情。加载后我想在这个模式中显示第一个可能的行。 我知道,我可以通过这种方式获得第一排:
gridLookUpEdit1.EditValue = gridLookUpEdit1.Properties.GetKeyValue(0);
我应该以任何提到的事件来调用吗?有没有有效的方法来解决它?
问候。
答案 0 :(得分:0)
自定义显示文字未显示在加载中,因为gridLookUpEdit.Properties.View
在加载时没有显示DataSource,
您有2个解决方案可以检查:
1-在选择默认值之前将DataSource分配到gridLookUpEdit.Properties.View.GridControl.BindingContext = new BindingContext();
gridLookUpEdit.Properties.View.GridControl.DataSource = gridLookUpEdit.Properties.DataSource;
gridLookUpEdit.EditValue = gridLookUpEdit.Properties.GetKeyValue(0);
,如下所示:
CustomDisplayText
或
2 - 您可以更改private void gridLookUpEdit_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
GridLookUpEdit edit = sender as GridLookUpEdit;
int theIndex = edit.Properties.GetIndexByKeyValue(edit.EditValue);
if (theIndex >= 0)
{
DataRowView row = (DataRowView)edit.Properties.GetRowByKeyValue(edit.EditValue);
e.DisplayText = row[0].ToString() + ": " + row[1].ToString() + " " + row[2].ToString();
}
}
事件中的代码:
{{1}}