Классическая проблема с MVC - когда изменение вида влияет на модель и когда оно просто отражает модель?
Это должно решаться контроллером - если он не обрабатывается контроллером, то у вас действительно нет реализации MVC, а просто MV с логикой контроллера, встроенной и распределенной по взаимодействиям между моделью и Просмотр.
Когда пользователь взаимодействует с представлением, представление (древовидное управление) должно уведомить контроллер, который, в свою очередь, обновляет модель.
Когда Модель обновляется, она должна уведомить Контроллер.
В этом сценарии Контроллер уже знает, что он обновляет Модель, и поэтому может игнорировать определенные уведомления, которые он в противном случае передал бы в Представление.
Самая большая проблема, с которой вы сталкиваетесь, заключается в том, что элементы управления, используемые в вашем представлении, не идеально подходят для использования в реализации MVC. Нажатие на древовидную структуру изменяет выбор в самом элементе управления древовидной структуры (Вид). В MVC, в идеале, вы должны вместо этого уведомить модель (через контроллер), что выбор должен быть изменен на выбранный элемент.
Таким образом, состояние выбора модели изменяется, и Treeview уведомляется. Ни один View не должен предполагать, что он уже знает, что он делает с Моделью.
Состояние выбора Treeview всегда всегда является отражением состояния модели.
Но без выполнения какой-либо работы в элементах управления пользовательского интерфейса для создания этого расстояния между состоянием элемента управления и базовым состоянием модели вам просто придется бороться с обходными решениями.