2009-02-22 57 views
3

當我使用雙向綁定將TextBox控件綁定到對象的字符串屬性時,它可以正常工作 - 只要用戶在關閉瀏覽器窗口/選項卡之前離開控件。當瀏覽器關閉時,Silverlight綁定的TextBox會丟失數據

但是,如果用戶對文本框內容進行了更改,然後關閉期望數據保存的窗口,

雖然可以掛接到TextChanged事件或Application_Exit()處理程序並手動更新屬性,但實質上是重新執行活頁夾的工作。儘管如此,這些似乎是目前唯一的解決方案。

nb。 WPF應用程序中的相同xaml /代碼正常工作(App.OnExit顯示對象中的更新數據)。

回答

0

Silverlight的Binding類是否有UpdateSourceTrigger屬性?在WPF中你可以告訴控件來更新其綁定的源屬性發生變化時(而不是當控件失去焦點),像這樣:

<TextBox Text="{Binding Path=Foo,UpdateSourceTrigger=PropertyChanged}" /> 
+0

不錯的嘗試,我找不到它的記錄,當我嘗試它,頁面根本沒有加載。 順便說一下,我測試了我的原始xaml /代碼在WPF應用程序,它工作正常。 – 2009-02-22 11:59:11

1

我在這裏做一個受過教育的猜測基礎上顯著web開發經驗但Silverlight的體驗非常有限。

您可以使用一些Javascript鉤入HTML中的onunload,然後在您的Silverlight代碼中調用一個函數來處理它。

+0

Silverlight有一個頁面卸載類型事件(app_exit),但這仍需要手動檢索控制數據。 可能是最好的解決方法了。 – 2009-02-22 17:00:21

1

看來,這是Silverlight的問題。它不更新文本框上的綁定屬性,直到失去焦點。

我必須使用的一種解決方法(我實現動態過濾器)是實現TextChanged事件處理程序並手動更新支持屬性。

+0

謝謝你。我已經更新了相應的問題。 – 2009-02-22 17:03:24