绑定到xaml或viewmodel?

时间:2014-02-11 10:42:24

标签: wpf xaml

当我想要控件交互时,他们应该直接通过xaml或使用视图模型进行交互吗?

例如我有两个文本框,要求是A和B显示相同的文本

<TextBox Name = "A" Text = "{Binding ViewModel.MyText}"/>
<TextBox Name = "B" Text = "{Binding ViewModel.MyText}"/>

写作更好吗?

<TextBox Name = "A" Text = "{Binding ViewModel.MyText}"/>
<TextBox Name = "B" Text = "{Binding ElementName = A, Path = Text"/>

这当然是最简单的情况。

1 个答案:

答案 0 :(得分:4)

这完全基于意见。如果我必须这样做,我会更喜欢第二种方法(与elementName绑定),原因如下:

  1. 如果两个TextBox都必须始终同步。考虑以某种方式绑定被破坏的情况,即使在这种情况下两个textBox也将同步
  2. 如果更新了属性名称,那么我在XAML中的更少的地方可以去更新(显然不是重点,只是为了列出原因。这是其中之一)。
  3. 第三,如果包含类的Name属性没有实现INPC,那么两个textBox就会同步。可以阅读有关here
  4. 的更多信息

    完全休息,因为两种方法都很好。