2015-09-29 43 views
1

我使用了xamdatagrid cellupdated事件,在该事件中,我必须在编辑中禁用特定单元并希望在获得API调用的响应后启用它,问题是当我启用单元格禁用后,游标不会设置在正确的位置。如何禁用wpf中的xamdatagrid单元格编辑

private async void RenewDataGrid_OnCellUpdated(object sender, CellUpdatedEventArgs e) 
{ 
    row.Cells[4].IsEnabled = false; 
    await datacontext.CalculateFdtotalAmount(); 
    row.Cells[4].IsEnabled = true; 
} 

回答

1

我有一个函数调用XamDataGrid类似的问题类型。我通过处理像老PeekMessage这样的语句来解决它。要做到这一点,请尝试这样的:

private async void RenewDataGrid_OnCellUpdated(object sender, CellUpdatedEventArgs e) 
{ 
    row.Cells[4].IsEnabled = false; 
    DoEvents(); 
    await datacontext.CalculateFdtotalAmount(); 
    DoEvents(); 
    row.Cells[4].IsEnabled = true; 
} 



    public object ExitFrame(object f) 
    { 
     ((DispatcherFrame)f).Continue = false; 
     return null; 
    } 
    public void DoEvents() 
    { 
     DispatcherFrame frame = new DispatcherFrame(); 
     Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, 
      new DispatcherOperationCallback(ExitFrame), frame); 
     Dispatcher.PushFrame(frame); 
    } 
+0

谢谢üSteveFerg ...我为我工作....伟大的工作...你能解释一下这背后的逻辑吗? –

+0

我发现一些调用被缓存。在你退出函数之前,它并不会立即执行API调用。我还发现,特别是在初始窗口加载时,有些时候我不得不为cellpresenter调用放置一个短计时器。这是几小时和几小时的丰富多彩的语言和头撞的结果,以确定何时代码没有任何问题,这是行不通的。我只是因为某些原因发现了一些Infragistics调用的问题。一旦我做出上述改变,我就没有问题了。 – SteveFerg

相关问题