Есть ли способ строго ввести свойство тега элемента управления? - PullRequest
3 голосов
/ 27 июня 2011

У меня есть элемент управления TreeView, который отображает две вещи:

1) Folder
2) Item

Где папки содержат элементы. И корневая папка содержит все подпапки, а также элементы, которые не принадлежат папке.

У меня есть тип Folder, связанный с узлами, которые представляют папки, и тип Item, связанный с узлами, которые представляют элементы.

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

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

Вы можете легко сделать напечатанный тег при необходимости:

public class MyTreeNode<T> : TreeNode
{
    public T TypedTag { get; set; }
}
2 голосов
/ 27 июня 2011

Использовать операторы «как» и «или»?например,

if(node.Tag is Folder)
{
     Folder f = node.Tag as Folder;
}
else if (node.Tag is Item)
{
     ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...