WPF - Создать Treeview - PullRequest
       0

WPF - Создать Treeview

0 голосов
/ 04 апреля 2011

У меня есть список полей типа, которые могут представлять иерархию: List MyFields

public class Field
{
    public Field(string name, string value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public string Value { get; set; }
    public IList<Field> SubFields { get; set; }
}

Как я могу связать MyFields с TreeView?

EDIT: Я забыл, я хочу, например. показать значение в окне сообщения при нажатии на элемент.

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Установите для TreeViews ItemsSource свойство, с которым вы хотите связать.

0 голосов
/ 04 апреля 2011

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

Примерно так, например:

<HierarchicalDataTemplate DataType="{x:Type data:Field}"
                          ItemsSource="{Binding SubFields}">
    <ContentControl MouseDoubleClick="TreeViewItem_MouseDoubleClick">
        <TextBlock Text="{Binding Name}"/>
    </ContentControl>
</HierarchicalDataTemplate>
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    Field field = (sender as FrameworkElement).DataContext as Field;
    MessageBox.Show(field.Value.ToString());
}

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

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