如何更新对象';从UI到VM的内部属性?(WPF MVVM)

如何更新对象';从UI到VM的内部属性?(WPF MVVM),wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我的ViewModel中有一个属性,我将其称为“Project”,其中包含多个嵌套列表。这些列表在视图模型中都没有关联属性,因为我可以使用触发器和绑定在xaml中显示所有内容。 My xaml在树视图中显示项目层次结构,并在多个视图中显示其详细信息(内容控件根据树视图上选择的项目选择正确的视图)。其中一个“详细信息”是一个嵌套列表中包含的对象的属性,我在文本框中显示它,以便用户可以编辑它,我遇到的问题是,一旦我在文本框中对该属性进行更改,我就看不到该属性在VM的Project属性中更新。 有人告

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

常见错误有:

使用单向绑定模式而不是双向绑定模式

在XAML中:

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

直到文本框失去焦点后,才意识到更新不会传播到VM。

这是文本框的默认设置:

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

您可以将其更改为:

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

你能分享一些你的代码吗,这样我们就有了一个更好的环境?