2010-12-15 164 views
1

我有一個簡單的Silverlight應用程序,它有一個數據網格,它被認爲是一個愚蠢的問題。我的一列可讓用戶編輯當天的考勤號碼。如果用戶在編輯後標籤/點擊消失,則所有內容都會保存並且具有綁定合同,但是如果datagrid編輯框具有焦點並且用戶關閉瀏覽器,則數據庫中的數據不會更新。我通過標準的wcf ria服務使用Silverlight 4和可觀察的集合。Silverlight Datagrid和瀏覽器關閉問題

任何想法我可以做什麼?

回答

1

在你的App.xaml.cs中有一個Application_Exit()函數。該功能在用戶關閉瀏覽器時啓動。

在該方法中,通過RootVisual這樣的檢索你當前打開的窗口中:

private void Application_Exit(object sender, EventArgs e) 
{ 
    if (this.RootVisual is MySLApp.MainPage) 
    { 
     MySLApp.MainPage theMainPage = (MySLApp.MainPage)this.RootVisual; 

     theMainPage.myGrid.Commit() // OR SOMETHING LIKE THAT I DONT THINK THE COMMIT EXISTS :) 
    } 

} 
+0

這似乎並沒有工作。看起來application.exit事件在瀏覽器關閉時沒有被調用。 – 2010-12-15 15:14:35

+0

試着把一個MessageBox.Show(「」);在Application_Exit()中查看是否被調用。在我的測試probject它的工作(與框架4.0) – danbord 2010-12-15 15:21:23

+0

是的,我得到應用程序退出事件,我打電話datagrid.commitedit();即使我在提交調用之後放置了一個消息框來減緩異步處理,也無法應用我的編輯。我錯過了什麼嗎? – 2010-12-15 17:41:33