WPF: existe uma TreeGrid / TreeListView incorporada?

Preciso de algo assim.

texto Em Alt http://files.otac0n.com/TreeListView.png

Preciso tanto do TreeView como do ListView. Isto é, hierarquização e Colunas.)

Mas preciso dele na WPF. isto é algo que foi construído, ou vou ter de ser eu a construí-lo?

Presumo que tenha de estar algures no quadro, uma vez que o VS2010 é construído no FSM.

editar: Eu consegui obter algumas das funcionalidades que eu quero usando uma TreeView e algumas grades com suas colunas ligadas às colunas de uma grade pai, mas há muitas peculiaridades na funcionalidade.

Editar 2: Ainda não encontrei uma forma de o fazer. Alguma ideia?

Author: John Gietzen, 2010-04-24

6 answers

Este post no MSDN faz uso do WPF nativo para alcançar um híbrido TreeView / Grid. É baseado nos controles TreeView e Grid. Suporta uma árvore com várias colunas, mas não suporta a ordenação ou filtragem

Http://dlaa.me/blog/post/9898803

Editar: eu integrei recentemente este código e ele funciona muito bem, dá-lhe exatamente o que você quer: http://www.codeproject.com/Articles/30721/WPF-TreeListView-Control

 10
Author: gls123, 2015-07-09 07:58:20

Já consideraste Xced.Wpf.DataGrid ?

Você pode ver uma demonstração de Versão Completa toma.

Existe também uma edição comunitáriacomo parte de Toolkit WPF alargado™ - licença Ms-PL

Lista das funcionalidades na versão completa
lista dos elementos da edição comunitária
Infelizmente, não encontrei uma compilação com estilo de mesa.

P. S.

  1. Usando Snoop (WPF Espião utilitário) e Spy++ no Visual Studio 2010 (Professional edition), descobri que o TreeGrid ver o interior Assistir, Local, e Autos ferramenta windows, é chamado TREEGRID o que é não um componente do Wpf. (Mas eu não tenho certeza do que é).
    Embora interessante, descobri que os pontos de paragem foram construídos usando dois componentes lado a lado - SysTreeView32 e SysListView32

  2. Não tenho nada a ver com Xceed.:-)

Editar:
Parece que a hierarquia pode ser alcançada em ambas as versões, mas Master-Detail só está presente na Versão Completa, e na versão comunitária só se pode obter usando grupos .
:-(

 5
Author: itsho, 2013-08-06 11:03:25

Poderá ser capaz de falsificar esta visualização usando Objectos Partilhados especialmente alinhados nos seus modelos para a árvore...

No entanto, eu não acredito que o que você vê no Visual Studio seja realmente uma implementação de controle WPF, ele estava lá no Visual Studio 2008 também e é provável que seja um controle nativo personalizado ou Personalizado Windows Forms control. [[2]boas notícias, no entanto: se você precisa absolutamente ter esta experiência e querê-la em breve... é uma invasão total, mas: use formulários do Windows interop com a sua aplicação WPF.

Um empregado da Microsoft blogou uma winforms TreeGridView implementação de volta em ' 06:

 2
Author: Jeff Wilcox, 2010-05-11 08:14:21

Estás à procura do TreeViewhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.treeview.aspx:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Page.Resources>
        <XmlDataProvider x:Key="StaticXml" XPath="root/foo">
            <x:XData>
                <root xmlns="">
                    <foo a="_File">
                        <foo a="New">
                            <foo a="_Project..." />
                            <foo a="_Web Site..."/>
                        </foo>
                        <foo a="C_lose"/>
                        <foo a="E_xit"/>
                    </foo>
                    <foo a="_Edit">
                        <foo a="Cu_t"/>
                        <foo a="_Copy"/>
                        <foo a="_Paste"/>
                    </foo>
                </root>
            </x:XData>
        </XmlDataProvider>
        <HierarchicalDataTemplate x:Key="MenuTemplate" ItemsSource="{Binding XPath=foo}">
            <AccessText Text="{Binding XPath=@a}"/>
        </HierarchicalDataTemplate>
    </Page.Resources>
    <StackPanel>
        <TreeView
                ItemsSource="{Binding Source={StaticResource StaticXml}}"
              ItemTemplate="{StaticResource MenuTemplate}"/>
    </StackPanel>
</Page>
 0
Author: rasx, 2010-04-24 04:21:37

A visão ObjectList parece - me bastante boa...

 0
Author: TigrouMeow, 2011-01-31 01:45:16

Você pode obter este comportamento com o DataGrid seguindo este tutorial (role o agrupamento falso com a ajuda da secção Vermodel).

A solução do tutorial funciona bem o suficiente, mas a rolagem pode ficar vagarosa e o seu comportamento é imprevisível quando algumas linhas são colapsadas.

Update : Eu mudei como as crianças estão escondidas. Em vez de colapsar linhas, removi itens na coleção ObservableCollection. Agora a deslizar funciona perfeitamente!

 0
Author: Pakman, 2016-07-25 22:33:34