绑定与变量的显式赋值

时间:2011-10-21 08:50:28

标签: c# wpf silverlight binding

我正在考虑以下问题。

如果我有一个文本框/滑块/组合框,其值与

类似
<TextBox Name=textBox Text="{Binding Text}"/>

然后再做

textBox.Text = "something"

是否会“覆盖”绑定或绑定“更强”然后显式赋值

3 个答案:

答案 0 :(得分:6)

不,绑定将被覆盖。

答案 1 :(得分:2)

不,它不会更新您的绑定。绑定只有在来自View时才会更新,如果你从后面的代码设置它,它将覆盖文本但会破坏绑定。你可以尝试这个样本 -

  • 在视图上放置一个文本框,并将其文本属性绑定到某些文本框 viewmodel中的属性表示此属性的值为“Test”
  • 现在在视图上放置两个按钮。
  • 点击第一个按钮,只需将文本框的文本设置为 有人说“Button1”。
  • 您会注意到文本框文本现在将是“Button1”,但CLR属性的值仍为“Test”。
  • 现在点击第二个按钮,尝试设置您的Viewmodel属性 “Button2的”。 PropertyChanged将被解雇但你不会注意到任何 更改文本框文本。

如果要更新绑定,则必须在代码后面设置Dependency属性,如下所示 -

textBox.SetCurrentValue(TextBox.TextProperty, "Button2");

其中textBox是TextBox的名称。

答案 2 :(得分:1)

只需将您想要的值放在绑定对象的“文本”框中的文本框中即可。否则,绑定将被覆盖,如上面提到的devdigital。