2015-09-29 77 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

相關問題