首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ProcessNewValue事件后,devExpress winform GridLookUpEdit未选择新的附加值

ProcessNewValue事件后,devExpress winform GridLookUpEdit未选择新的附加值
EN

Stack Overflow用户
提问于 2021-03-19 04:28:00
回答 1查看 230关注 0票数 0

您好,我正在使用devexpress winform控件,特别是GridLookUpEdit,我尝试在GridLookUpEdit_ProcessNewValue事件中异步保存新记录,但我不能让创建的记录被自动选择,我已经尝试在没有"await“的情况下异步保存,它工作得很好,但我需要能够在添加到GridLookUpEdit数据源之前等待操作的结果。有没有人知道为什么会发生这种情况,或者如何解决这个问题?

代码语言:javascript
复制
 DevExpress.XtraEditors.GridLookUpEdit gridLookUp = sender as DevExpress.XtraEditors.GridLookUpEdit;
        try
        {
            var pais = cboPais.EditValue?.ToString();
            if (string.IsNullOrWhiteSpace(pais))
            {
                e.Handled = true;
                return;
            }

            if ((string)e.DisplayValue != String.Empty && FrameUtil.MostrarMensage(
                        this, "Confirmar", "Desea crear un registro nuevo ?", "La provincia o estado  '" + e.DisplayValue.ToString() + "' aun no se a agregado al pais " +
                        pais + Environment.NewLine + "Presione si para continuar y agregarlo",
                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {

                ProvinciaDto provincia = new ProvinciaDto()
                {
                    CodigoPais = pais,
                    Descripcion = e.DisplayValue.ToString()
                };

                await _context.Provincias.GuardarAsync(provincia);

                ListaGenerica<ProvinciaDto> listaProvincias = bsProvincia.DataSource as ListaGenerica<ProvinciaDto>;
                listaProvincias.Add(provincia);

                e.DisplayValue = provincia.Descripcion;
                gridLookUp.Refresh();
            }
        }
        catch (Exception ex)
        {
            FrameUtil.MostrarMensageError(this, ex);
        }
        finally
        {
            e.Handled = true;
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2021-03-23 09:30:59

我建议你参考这个- RepositoryItemLookUpEditBase.ProcessNewValue Event

这是一个向GridLoopEdit的数据源添加一条记录的简单示例。您应该尝试删除e.DisplayValue = provincia.Descripcion; gridLookUp.Refresh();

代码语言:javascript
复制
//ProcessNewValue event handler
void LookUpEdit1_ProcessNewValue(object sender, ProcessNewValueEventArgs e) {
    if ((string)e.DisplayValue != String.Empty && MessageBox.Show(
        this, "Add the '" + e.DisplayValue.ToString() + "' entry to the list?",
        "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes) {
            ContactList list = (sender as LookUpEdit).Properties.DataSource as ContactList;
            list.Add(new Contact(list.Count, e.DisplayValue.ToString()));
            e.Handled = true;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66698666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档