WPF,MVVM将ViewModel属性绑定到嵌套的UserControl

WPF,MVVM将ViewModel属性绑定到嵌套的UserControl,wpf,binding,inotifypropertychanged,Wpf,Binding,Inotifypropertychanged,我有两个名为“MyTree”和“MyGrid”的用户控件。 我有另一个名为“Content”的用户控件,其中有一个“MyTree”和“MyGrid”。 我有一个带有选项卡控件的窗口。 每个选项卡项都包含“内容”。选项卡项是动态添加的。 所以,在动态创建选项卡项时,如何将该项添加到“MyGrid”中。 我使用MVVM模式和INotifyPropertyChanged事件 Iam将项目源设置为某些属性 现在我的“ContainerPanelViewModel”已经 我还有另一个视图模型,它有一个 O

我有两个名为“MyTree”和“MyGrid”的用户控件。 我有另一个名为“Content”的用户控件,其中有一个“MyTree”和“MyGrid”。 我有一个带有选项卡控件的窗口。 每个选项卡项都包含“内容”。选项卡项是动态添加的。 所以,在动态创建选项卡项时,如何将该项添加到“MyGrid”中。 我使用MVVM模式和INotifyPropertyChanged事件 Iam将项目源设置为某些属性

现在我的“ContainerPanelViewModel”已经

我还有另一个视图模型,它有一个

ObservableCollection<ContainerPanelViewModel> RootNodeTabCollection
但是标签内容没有得到更新

if (PropertyChanged != null)
始终为false..且未进入循环。
消息框在任何时候都不会显示

很可能您有一组ViewModels,其中每个ViewModels都是某个选项卡的DataContext。然后,这个ViewModel应该有另一个集合,可以用作网格或树的DataContext

如果
PropertyChanged
为null,则表示没有任何内容绑定到视图模型。在XAML中,需要使用
{Binding…}
语法将属性绑定到视图模型的实例,以便在更新视图模型上的属性时发生任何情况

您可能已经有了一些绑定,但可以调试这些绑定,以了解绑定失败的更多原因。有几种方法可以做到这一点,但有一种方法是向绑定中添加
PresentationTraceSources.TraceLevel=High
。例如:

ItemsSource="{Binding Items, PresentationTraceSources.TraceLevel=High}"

然后,WPF将该特定绑定的绑定跟踪信息写入调试窗口。

发布一些代码,很难想象你所描述的是什么。由于一些安全问题,我无法显示代码。好的..谢谢你的提示…我错误地保留了视图集合而不是viewmodels..我希望这能解决我的问题..谢谢你这么做,我在设置了另一个视图模型my“PropertyChanged!=null”始终为null。因此UI未更新。原因可能是什么?对不起,我不明白你想说什么。你能给我举个例子吗?
if (PropertyChanged != null)
ItemsSource="{Binding Items, PresentationTraceSources.TraceLevel=High}"