在我的程序中我有一个TreeView
具有数据支持(视图模型和数据模型)。添加到的每个项目TreeView
添加一个子项,但由于某种原因,子项在运行时没有反映。但是,我可以在调试期间看到孩子们以及我的“孩子”属性TreeView's
数据模型包括NotifyPropertyChange
在它的设置器中。
注意:之前我遇到过类似的问题,新添加的节点(这些子节点的父节点)也不会显示。此问题已通过设置纠正DisplayMemberPath="DisplayName.Value"
在树的 xaml 中。
TreeView's
xaml:
TreeView ItemsSource="{Binding UserControl_DataModel.TreeViewViewModel.ObservableCollection<TreeViewDataModel>}" DisplayMemberPath="DisplayName.Value".../>
这是创建新节点并将其添加到的位置TreeView
(树视图视图模型):
private TreeViewDataModel createNewNode(StringItem nodeName)
{
var newNode = new TreeViewDataModel ()
{
DisplayName = nodeName
};
newNode.Children.Add(new TreeViewDataModel () { DisplayName = nodeName});
return newNode;
}
public void addNewLocNode(StringItem nodeName)
{
TreeObservableCollection.Add(createNewNode(nodeName));
}
Note: StringItem
是一个自定义类。在StringItem
, Value
返回项目的字符串值。 (前任:StringItem.Value
)
TreeViewDataModel 中的 Children 属性:
public ObservableCollection<TreeViewDataModel> Children
{
get { return _children ?? (_children = new ObservableCollection<TreeViewDataModel>()); }
set
{
_children = value;
NotifyPropertyChange(() => Children);
}
}
为什么子节点没有出现在我的TreeView
,我该如何解决这个问题?