2009-07-13 41 views
2

如果文本框上的文本是使用双向模式将数据绑定到属性并将文本设置为某些内容,它应该更新属性是否有意义?当我在控件中键入内容时,我的属性得到更新,但是当我在代码中设置值时,属性不会更新。设置textBox.Text不会更新绑定的twoway属性?

+0

你能告诉我们一些代码吗? – 2009-07-13 16:19:02

回答

3

我会说直接修改绑定的Text属性是没有意义的。你的代码应该设置绑定的另一端,并允许绑定更新控件。

如果在设置了Text属性时更新了绑定对象,那么需要使用特殊情况代码来检测何时这样的分配者是由于其他原因而导致绑定对象更改的结果。否则,你会以无限循环结束。

+0

这个问题来自我正在做的一些工作,以编程方式添加/删除数据绑定。我发现,只要我在代码中设置绑定,它就会将我所绑定的属性和文本框设置为空字符串。当我再次设置数据绑定时,我希望将文本框内的文本设置为属性,而不是其他方式。为什么我首先要删除数据绑定?因为该属性得到不断更新,并且我不希望文本框在焦点时更改其文本。 – djcouchycouch 2009-07-13 16:26:29

0

这是因为它只在文本框丢失焦点时提交数据。 Here是一个有点相关的问题,避免了这一点。

1

您不应该设置文本框的.Text值...设置它绑定到的属性的值。 :)

我鼓励你阅读更多关于Model-View-ViewModel方法来设计你的视图。在做这类工作时,它保持清晰的关注点。你看到这个导致绑定刷新的焦点的“bug”的原因是因为大多数时候这种事情是不合适的。

这是MVVM的一个很不错的视频介绍:MVVM on Channel 9

相关问题