2016-08-10 15 views
0

C#을 목록의 일부 요소는 (treeNodes이라고 함) 편집 : 내가 목록의 일부 요소를 수정하기 위해 노력하고있어

List<TreeNodeViewModel> treeNodes = GetAllTreeNodes(); 

foreach (var item in role.Privileges) 
{ 
    TreeNodeViewModel treeNode = treeNodes.Single(tn => tn.id == item.Id.ToString()); 
    treeNode.state.IsChecked = true; 
} 

그러나 treeNode.state.IsChecked = true;이 실행되면, 모든 목록 항목이 IsChecked = true있을 것이다

는, 그 이유는? 선택한 항목 만 편집해야합니다.

+0

딥 복사 문제인 것처럼 보입니다. 모든 노드에 하나의'state' 변수를 할당합니까? –

+1

"선택한 항목"이란 정확히 무엇을 의미합니까? 당신은 _ 특권'을 위해 그렇게했습니다, 당신이 그것을 의도 했습니까? –

+0

내가 한 treeNode.state = new NodeStateViewModel (false, false, false, true); 그리고 문제를 해결했습니다 – Samirovic

답변

0

내가 한 treeNode.state = new NodeStateViewModel (false, false, false, true); 문제를 해결했습니다.

관련 문제