отменить выбор в TreeView - PullRequest
       21

отменить выбор в TreeView

3 голосов
/ 24 июня 2011

Итак, у меня есть приложение wpf c #, которое получает информацию из файла, загружает их в список, затем загружает список в treeView, у него также есть кнопки для редактирования, удаления, добавления информации, как я это делаю, это редактированиеинформация в списке, затем перезаписать текстовый файл с измененной информацией списка, а затем есть кнопка обновления, используемая для обновления treeView, и когда я обновляю treeView, я удалил все из списка, а затем перезагрузил список с обновленным текстомЗатем очистите файл treeView и перезагрузите данные списка в treeView.Теперь причина его сбоя в моем обновленном находится в этой строке treeView1.Items.Clear(); , а затем он приводит меня к этой строке string selectName = ((TreeViewItem)(treeView1.SelectedItem)).Header.ToString();, которая находится в моем коде treeView1_SelectedItemChanged, так что я понимаю, почему его сбой, есть ли способ заставить его отменить что-либо вTreeView прямо перед тем, как я его очищаю, поэтому он не пытается очистить выбранный элемент.Благодарю.имя и реквизиты указаны в списке.

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Попробуйте добавить флаг, который срабатывает при очистке дерева. Затем поместите свой код тела события действия в флажок if, если установлен флажок

1 голос
/ 24 июня 2011
treeView1.SelectedItem

будет нулевым, так как вы только что очистили древовидное представление.

Вы должны спросить себя, какой смысл пытаться получить заголовок элемента в древовидном представлении, элементы которого только что былиочистить и указать, почему эта строка вызывается в этой точке вашей программы.

Я не могу вам помочь без дополнительного контекста.

РЕДАКТИРОВАТЬ : ИзвинитеЯ неправильно понял, что вы спрашивали.Да, вы можете отменить выбор, но это также приведет к срабатыванию события изменения выбора.Перед тем как продолжить, проверьте в обработчике событий, что SelectedItem не равен NULL.

...