2014-02-11 4 views
3

내 프로그램에서는 부모 노드의 모든 자식을 가져와 새 노드를 추가 할 수 있습니다.SelectedItem의 GetAllChildren을 얻는 방법

//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)); 

지금은 완벽하게 작동 내 SelectedItem 재산의 기반으로 GetAllChildren 싶습니다 : 과거에 나는이 방법을 사용했다. GetAllChildren 방법으로 가능합니까? 그렇다면 어떻게?

추가 1 :

SelectedItem 속성은 유형의 뷰 모델이다. ObservableCollectionViewModel이기 때문에 기본적으로 SelectedItem은 ViewModel이 선택된 프로그램을 알려줍니다.

추가 2 :

난 그냥 단순히 부모 노드에 추가 할 수 없습니다. 나는 추가하기 전에이 프로그램에 다른 이유로 몇 명의 어린이가 있는지 확인해야합니다.

+0

내가 잘못 될 수도를 사용 카운트하지만 나에게

당신의 selectedItem에 해당 노드를 찾아서에 새 노드를 추가하는 방법을 묻는 것으로 보인다. 왜 당신은 그냥 SelectedItem.Add 대신 사용합니까 ??? 그것은 당신이 참조 equals에 의해 검색을 저장 정렬 것입니다. –

+0

그럴 경우 동일한 효과가 있습니까? Strike that .. 부모 노드에 속한 자식 수를 확인해야합니다. –

+1

그건 물어보고 싶은 귀여운 qustion입니다. 나는 그것이 같은 효과를 가져야한다고 생각하지만 솔직히 말하면 당신은 코드가 아니라 옆에 있습니다. Soooo 그것을 밖으로 시도하십시오. 적어도 작동하지 않는다면 우리는 그것을하지 않는 방법을 한 가지 더 알게됩니다. 에디슨은 100 가지 방법으로 전구를 만들지 않는다는 것을 알고있었습니다. :) –

답변

1

내가 틀렸을 수도 있지만 나에게 당신은 SelectedItem과 같은 노드를 찾는 방법을 묻는 것 같아요. 그리고 그것에 새로운 노드를 추가하십시오. 왜 당신은 그냥 SelectedItem.Add 대신 사용합니까 ??? 그것은 당신이 참조 equals에 의해 검색을 저장 정렬 것입니다. 아이들이 단지의 LINQ 카운트() 메소드 :

+0

당신은 자식의 수를 얻기 위해'SelectedItem.Children.Count()'를 사용했고 노드를 추가하기 위해'SelectedItem.Children.Add()'를 사용했다는 것을 추가 할 수 있습니다. –