2016-08-10 3 views
0

Я пытаюсь изменить некоторые элементы в списке (так называемый treeNodes):Редактировать некоторые элементы в C# список

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

Что именно вы подразумеваете под «выбранным пунктом»? Вы делаете это для _all_ 'Privileges', вы намеревались это сделать? –

+0

Я сделал treeNode.state = new NodeStateViewModel (false, false, false, true); и решил вопрос – Samirovic

ответ

0

Я сделал treeNode.state = new NodeStateViewModel (false, false, false, true); и решил вопрос

Смежные вопросы