在我的程序中,我想获取父节点的所有子节点,以便我可以向其添加新节点。过去我使用过这种方法:
//This gets all the children of a parent node depending on it's DisplayName
var node = ObservableCollection.GetAllChildren(x => x.Children).Distinct().ToList().First(x => x.DisplayName == nameOfNode);
node.Children.Add(CreateNode(newNodeName));
现在我希望GetAllChildren
基于我的SelectedItem
属性,该属性功能齐全。是否可以使用GetAllChildren
方法执行此操作?如果是这样,怎么样?
加法1:
我的SelectedItem
属性属于ViewModel类型。 ObservableCollection
也是ViewModel
类型,因此基本上SelectedItem
告诉程序选择了哪个ViewModel。
加法2:
我不能简单地添加到父节点。在添加之前,我必须检查此程序中有多少个孩子出于其他原因。
答案 0 :(得分:1)
我可能错了,但对我来说,你似乎在问如何找到一个等于SelectedItem的节点并为其添加一个新节点。为什么不使用SelectedItem.Add而不是???通过引用等于你可以节省搜索。
为计算孩子只需使用Linq Count()方法:)