C# WPF MVVM-刷新树视图

C# WPF MVVM-刷新树视图,c#,.net,wpf,data-binding,mvvm,C#,.net,Wpf,Data Binding,Mvvm,我已经在WPF MVVM中创建了一个树状视图(项目使用MVVM Light) 当我向Treeview的DataTemplate添加数据时,我希望重新加载整个Treeview。为此,我将从我的数据输入视图模型向我的树视图模型发送一条消息 虽然收到消息,但树不会刷新。我在每个节点上再次调用了LoadChildren,并使用了RaisePropertyChanged,但数据没有得到更新。TreeView绑定到您的ViewModel中的分层集合,并且它有一个属性名,例如TreeViewData。假设您的

我已经在WPF MVVM中创建了一个树状视图(项目使用MVVM Light)

当我向Treeview的DataTemplate添加数据时,我希望重新加载整个Treeview。为此,我将从我的数据输入视图模型向我的树视图模型发送一条消息


虽然收到消息,但树不会刷新。我在每个节点上再次调用了LoadChildren,并使用了RaisePropertyChanged,但数据没有得到更新。

TreeView
绑定到您的
ViewModel
中的分层集合,并且它有一个属性名,例如
TreeViewData
。假设您的
ViewModel
实现了
INotifyPropertyChanged
,只需调用属性
TreeViewData
PropertyChanged
处理程序即可。这将完全刷新
TreeView

TreeView
绑定到
ViewModel
中的分层集合,并且它有一个属性名称,例如
TreeViewData
。假设您的
ViewModel
实现了
INotifyPropertyChanged
,只需调用属性
TreeViewData
PropertyChanged
处理程序即可。这将完全刷新
TreeView

我的回答基于您使用Mvvm light的事实,因为您没有提供代码,所以我将仅陈述显而易见的问题,它可能会解决您的问题

您的viewmodel是否实现了ViewModelBase界面?(实现INotifiedPropertyChanged的)


我从未使用过TreeView,但假设它使用一个集合作为其数据模板,则无论何时添加/删除一个项,还是每当一个项发生更改时,都必须对集合调用RaisePropertyChanged。仅在集合的“集合”中调用RaisePropertyChanged是不够的。

我的答案是基于您使用Mvvm light的事实,因为您没有提供代码,所以我将仅说明显而易见的问题,这可能会解决您的问题

您的viewmodel是否实现了ViewModelBase界面?(实现INotifiedPropertyChanged的)


我从未使用过TreeView,但假设它使用一个集合作为其数据模板,则无论何时添加/删除一个项,还是每当一个项发生更改时,都必须对集合调用RaisePropertyChanged。仅在集合的“集合”中调用RaisePropertyChanged是不够的。

像往常一样:没有代码,我们做不了多少事情。请发布相关部分。像往常一样:没有代码,我们做不了多少。请发布相关部分。他使用的是mvvm light,因此其viewModel必须实现ViewModelBase,而ViewModelBase已经实现INotifyPropertyChanged.great,然后指示ViewModelBase发出更改通知Hi感谢提示。实际上,我是在我的TreeViewModel的Children属性上引发刷新事件,但是父属性没有引发已更改的属性。在包含它之后,树将被刷新。也很抱歉,我无法发布代码。这是我的公司代码,不允许我在网上发布。我正在创建一个复制程序,在此之前代码可以工作。谢谢他使用的是mvvm light,因此其viewModel必须实现ViewModelBase,后者已经实现INotifyPropertyChanged.great,然后指示ViewModelBase发出更改通知Hi感谢提示。实际上,我是在我的TreeViewModel的Children属性上引发刷新事件,但是父属性没有引发已更改的属性。在包含它之后,树将被刷新。也很抱歉,我无法发布代码。这是我的公司代码,不允许我在网上发布。我正在创建一个复制程序,在此之前代码可以工作。谢谢