[英]DevExpress VerticalGrid Row properties
我使用DevExpress 22
。 我將EditorRow
添加到VerticalGrid
。 在EditorRow
的RowEdit
屬性中,從In-place Editor repository
中選擇了LookUpEdit
。 LookUpEdit
包含來自數據庫的帶有顏色名稱的列表。 當我從列表中輸入 select 顏色名稱時, EditorRow
被塗成該顏色。 但是,當我 select 從列表中選擇一種顏色時,它不會立即應用,只有當我從EditorRow
中移除焦點時才會應用。 我使用EditValueChanged
來處理從列表中選擇值:
private void Ilue_zprstatus_EditValueChanged(object sender, EventArgs e)
{
LookUpEdit ilue = sender as LookUpEdit;
if (ilue.EditValue.ToString() == "Green")
{
zpr_status.AppearanceCell.BackColor = Color.FromArgb(0x99, 0xFF, 0x99);
}
if (ilue.EditValue.ToString() == "Yellow")
{
zpr_status.AppearanceCell.BackColor = Color.FromArgb(0xFF, 0xFF, 0x99);
}
if (ilue.EditValue.ToString() == "White")
{
zpr_status.AppearanceCell.BackColor = Color.FromArgb(0xFF, 0xFF, 0xFF);
}
}
function 有效,但顏色不會立即改變。 問題:
EditorRow
state?EditorRow
中從LookUpEdit
而不是ValueMember
獲取DisplayMember
的值?您應該處理查找存儲庫項的EditValueChanged
事件。 請參閱以下代碼示例:
public Form1() {
InitializeComponent();
vGridControl1.DataSource = ColorRecord.Init();
vGridControl1.ForceInitialize();
RepositoryItemLookUpEdit lookupColor = new RepositoryItemLookUpEdit();
lookupColor.ValueMember = "Color"; // Type - Color
lookupColor.DisplayMember = "ColorName"; // Type - String
lookupColor.EditValueChanged += new EventHandler(loolupColor_EditValueChanged);
vGridControl1.Rows["Color"].Properties.RowEdit = lookupColor; // Type - Color
}
// Fires once you selected a values from the dropdown list.
void loolupColor_EditValueChanged(object sender, EventArgs e) {
// Gets the lookup's value.
Color selectedColor = (Color)(sender as LookUpEdit).EditValue;
// Gets the lookup's display text.
string colorName = (sender as LookUpEdit).Text;
// Posts the selected value to the vGrid's data source.
vGridControl1.PostEditor();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.