2009-02-22 58 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