Отображение узла TreeView в winform - PullRequest
3 голосов
/ 19 декабря 2009

У меня есть элемент управления treeview, и его дочерний узел сопоставляется с элементом в списке, когда элемент в состоянии списка изменяется, мне нужно обновить соответствующий узел treeview, также, когда пользователь выбирает treenode, я могу отобразить для элемента в списке, каков наилучший способ записи сопоставления?

Ответы [ 2 ]

3 голосов
/ 19 декабря 2009

Если это стандартный WinForms TreeView, вы можете использовать свойство Tag на каждом узле, чтобы сохранить ссылку на соответствующий элемент списка.

Если вы также используете ListView, у каждого ListViewItem также есть свойство Tag , которое можно использовать для ссылки на соответствующий триод.

Использование свойства Tag для TreeNodes и ListVIewItems позволяет легко реализовать двухстороннюю синхронизацию между ними.

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

Тот же процесс в обратном порядке применяется, когда пользователь редактирует элемент TreeNode.

[Update]

В пользовательских интерфейсах элемент управления Tree и List, кажется, идут рука об руку на многих экранах. Однако в Windows Forms TreeView и ListView (или List) являются совершенно отдельными элементами управления, которые совсем не обязательно использовать вместе. Поэтому не существует встроенного способа синхронизации этих элементов управления друг с другом. Свойство Tag и / или события являются наиболее распространенными подходами к синхронизации между этими элементами управления.

1 голос
/ 19 декабря 2009

Я не помню, работал ли он специально с элементом управления TreeView в Winforms, но http://updatecontrols.net/ - это приятная настройка привязки данных, которая делает обновления очень быстрыми и действительно плавными. Вы должны взять пик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...