DevExpress& C#:选择值后验证RepositoryItemLookUpEdit单元格

时间:2014-07-21 04:32:35

标签: c# validation repository devexpress

我有一个GridView,我有这个专栏:

bandedGridColumn.ColumnEdit = InitEdit_Material();

这是InitEdit_Material方法:

public static RepositoryItemLookUpEdit InitEdit_Material()
{
    RepositoryItemLookUpEdit riMaterial = new RepositoryItemLookUpEdit();

    riMaterial.Columns.Add(new LookUpColumnInfo("ID", "ID"));
    riMaterial.Columns.Add(new LookUpColumnInfo("CustomsMaterial.Name", "Name"));

    riMaterial.DataSource = Service.GetAll(svc.EntityTypeToGet.Material).Data.All_Material;

    riMaterial.DisplayMember = "MaterialFullname";
    riMaterial.ValueMember = "ID";

    riMaterial.AutoSearchColumnIndex = 1;
    riMaterial.BestFitMode = BestFitMode.BestFitResizePopup;
    riMaterial.NullText = "";


    return riMaterial;
}

这就是它的样子:

enter image description here

每当用户在此单元格中选择一个新值时,我想执行一些操作(根据当前单元格值设置其他单元格的值),但问题是我知道只有在单元格失去焦点后才会触发的所有可能事件,i'我试过了:

private void vwVD_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)
{
    if (vwVD.FocusedColumn.Name == "colMaterialID") 
        MessageBox.Show("only show when focus lost");
    return;
}

private void vwVD_CellValueChanged(object sender, CellValueChangedEventArgs e)
{
    if (e.Column.Name != "colMaterialID") return;

    MessageBox.Show("only show when focus lost");
}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用GridView.CellValueChanging事件:

private void vwVD_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
    if (vwVD.FocusedColumn.Name == "colMaterialID")
    {
        //Perform some actions. Use e.Value.
    }
}