WPF: existe uma TreeGrid / TreeListView incorporada?
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?
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
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.
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 SysListView32Nã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 .
:-(
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:
Estás à procura do TreeView
http://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>
A visão ObjectList parece - me bastante boa...
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!