c# - 双击后 Devexpress GridContol 检查值变化

标签 c# events checkbox devexpress gridcontrol

我正在使用 DevExpress GridControl,我在其中绑定(bind)了数据并且一列包含 bool 标志 IsOrdered。我在 SimpleGridView 上注册了名为 CellValueChanged 的事件,因为当我的检查字段(即 IsOrdered 值)发生更改时,我想执行一些操作. 在订阅者方法中,我检查 if (e.Column.FieldName == "IsOrdered") 然后执行这些操作。

问题是 CellValueChanged 事件在我选中复选框(通过双击)并单击其他地方后才会引发。不幸的是,这在这里导致了一个烦人的问题:例如,当我在那个网格中有我的行时 IsOrdered 设置为 false(未选中),我选中此复选框并立即取消选中它,然后我单击某处否则,事件也会被引发。因为我认为在这种情况下不应引发该事件,因为该 IsOrdered 值实际上并未更改(它是 false,然后是 true,最后又是 false)。

也许有一些方法可以改变这种默认行为?什么是完美的是在复选框被选中/取消选中后立即引发 CellValueChanged 事件,而不必单击其他地方的复选框来引发事件。

还有一个名为 CellValueChanging 的事件,但它没有解决我的问题,因为该事件实际上是在 IsOrdered 的值更改之前引发的,但在我的订阅者方法 我需要知道该字段的值是否更改为 truefalse

我将不胜感激 :)。

最佳答案

您可以使用 GridView.CellValueChanging 事件,在此事件中您可以使用 ColumnView.SetRowCellValue 更改字段的值方法。
这是示例:

private void gridView1_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
    if (e.Column.FieldName == "IsOrdered")
    {
        gridView1.SetRowCellValue(e.RowHandle, e.Column, e.Value);

        //Do your other staff here.               
    }
}

关于c# - 双击后 Devexpress GridContol 检查值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30122367/

相关文章:

Angular 2 : Pressing the enter key triggers a method and I don't know how to stop it

javascript - 如何在按钮单击事件的隐藏字段中存储逗号分隔的选中复选框值?

c# - 通过 HttpClient.PostAsync 的 POST 请求,主体内有 StorageFile (WinRT)

c# - 访问 HubSection 内的数据

c# - 将嵌套字段绑定(bind)到 devexpress Grid 列

c# - 将文件加载到位图但保持原始文件不变

jQuery mouseup 没有被正确检测到

javascript - onblur ajax不调用回调函数

javascript - 如何使这个 Javascript 复选框触发操作像我的 CSS 示例一样工作

javascript - SugarCRM - 如何将 onClick 事件添加到现有 HTML/Checkbox