0

我的 ViewModel 中有一个属性,我将其称为“项目”,其中包含多个嵌套列表。由于我可以使用触发器和绑定在 xaml 中显示所有内容,因此这些列表都没有在视图模型中关联的属性。我的 xaml 在树视图中显示项目层次结构,并在几个视图中显示其详细信息(内容控件根据在树视图中选择的项目选择正确的视图)。其中一个“详细信息”是嵌套列表之一中包含的对象的属性,我在文本框中显示它,以便用户可以编辑它,我遇到的问题是我没有看到该属性已更新一旦我在文本框中对其进行了更改,就在 VM 的 Project 属性中。有人告诉我,我必须在 VM 中为我要编辑的特定对象的属性创建一个属性,

4

1 回答 1

0

常见的错误是:

使用 OneWay 绑定模式而不是 TwoWay

在 XAML 中:

<TextBox Text="{Binding Path=Name, Mode=TwoWay}" />

直到 TextBox 失去焦点后才意识到更新不会传播到 VM。

这是文本框的默认设置:

<TextBox Text="{Binding Path=Name, UpdateSourceTrigger=LostFocus}" />

您可以将其更改为:

<TextBox Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />    
于 2012-05-18T07:20:26.780 回答