WPF Databinding Treeview к списку странностей - PullRequest
0 голосов
/ 01 февраля 2011

Так что у меня странная проблема с привязкой данных.Я пытаюсь привязать данные к списку в виде дерева и по какой-то причине я могу выбрать элементы, созданные как часть привязки.

Источник привязки:

<TreeView Name="paramTree" 
          BorderBrush="DarkSlateGray"
          Margin="0,0,0,1">
    <TreeViewItem Name="systemNode"
                  Header="System Info"
                  ItemsSource="{Binding}">
        <TreeViewItem.ItemTemplate>
            <DataTemplate>
                <TreeViewItem Header="{Binding}"/>
            </DataTemplate>
        </TreeViewItem.ItemTemplate>
    </TreeViewItem>
</TreeView>

Код сзади:

private PropertyList sysList = new PropertyList(typeof(System.Environment));

public MainWindow()
{
    InitializeComponent();
    .
    .
    systemNode.DataContext = sysList;
}

class PropertyList : List<string>
{
    public PropertyList(Type t)
    {
        // Get properties of this type
        PropertyInfo[] propertyInfo = t.GetProperties();

        foreach (PropertyInfo property in propertyInfo)
        {
            Add(property.Name);
        }
    }
}

Это создает поддерево узла "Информация о системе" со всеми свойствами System.Environment, но я не могу нажать ни на один из новых TreeViewItems ... Справка?

1 Ответ

2 голосов
/ 01 февраля 2011

Просто глядя на это, я предполагаю, что это старая проблема, исправьте меня, если я ошибаюсь ...

TreeView автоматически генерирует TreeViewItem вокруг ваших элементов.Ваш ItemTemplate должен быть:

    <TreeViewItem.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </TreeViewItem.ItemTemplate>
...