WPF: Existe-t-il une vue intégrée de TreeGrid / TreeListView?

j'ai besoin de quelque chose comme cela:

texte alternatif http://files.otac0n.com/TreeListView.png

(j'ai besoin à la fois des aspects TreeView et ListView. C'est-à-dire L'Hirearchie et les colonnes.)

mais, j'en ai besoin dans WPF. est-ce quelque chose qui est construit dedans, ou vais-je devoir le construire moi-même?

je suppose qu'il doit être quelque part dans le cadre, puisque VS2010 est construit dans WPF.

Modifier: J'ai réussi à obtenir certaines de la fonctionnalité que je veux utiliser un TreeView et quelques grilles avec leurs colonnes liées aux colonnes D'une grille mère, mais il y a trop de bizarreries dans la fonctionnalité.

Modifier 2: J'ai encore de pas encore trouvé le moyen de le faire. Des idées?

24
demandé sur John Gietzen 2010-04-24 08:18:07
la source

6 ответов

ce post sur MSDN fait usage de WPF natif pour réaliser un hybride TreeView/Grid. Il est basé sur les contrôles TreeView et Grid. Il supporte un treeview avec plusieurs colonnes, mais ne supporte pas le tri ou le filtrage

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

EDIT: j'ai récemment intégré ce code et il fonctionne très bien, vous donne exactement ce que vous voulez: http://www.codeproject.com/Articles/30721/WPF-TreeListView-Control

10
répondu gls123 2015-07-09 10:58:20
la source

avez-vous envisagé Xceed.Wpf.DataGrid ?

Vous pouvez voir une Démo de Version Complèteici.

il y a aussi un Communauté Edition in part of Trousse élargie du FPF™ -licence Ms-PL

Liste de fonctionnalités dans la version Complète

Liste des fonctionnalités de Community Edition

Malheureusement, je ne pouvais pas trouvez une compilation de style table.

P.S.

  1. En utilisant Snoop Spy++ TreeGrid vous voyez à l'intérieur de Regarder, et Voitures l'outil de windows, est appelé TREEGRID qui est un volet du FPF. (Mais je ne suis pas sûr de ce qu'il être.)

    Intéressant cependant, j'ai trouvé que le points d'arrêt tool-window a été construit en utilisant deux composants côte à côte - SysTreeView32 et SysListView32

  2. je ne suis pas lié à Xceed en quelque sorte :-)

Edit:

Il semble que la hiérarchie puisse être atteinte sur les deux versions, mais Maître-Détail n'est présent que dans le version complète, et sur version communautaire vous pouvez obtenir seulement en utilisant Groupes.

:-(

5
répondu itsho 2013-08-06 15:03:25
la source

Vous pouvez être en mesure de simuler cet affichage en utilisant des objets de grille partagée spécialement alignés dans vos gabarits pour TreeView...

cependant Je ne crois pas que celui que vous voyez dans Visual Studio est en fait une implémentation de contrôle WPF, il était là dans Visual Studio 2008 aussi bien et est probablement soit un contrôle natif personnalisé ou un contrôle de formes Windows personnalisé.

une Bonne nouvelle, cependant: si vous devez absolument avoir cette expérience et voulez bientôt... c'est un piratage total, mais: utiliser Windows Les formulaires sont interopérés avec votre application WPF.

un employé de Microsoft a blogué un winforms TreeGridView mise en place en 06:

2
répondu Jeff Wilcox 2010-05-11 12:14:21
la source

Vous êtes à la recherche pour le 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 [email protected]}"/>
        </HierarchicalDataTemplate>
    </Page.Resources>
    <StackPanel>
        <TreeView
                ItemsSource="{Binding Source={StaticResource StaticXml}}"
              ItemTemplate="{StaticResource MenuTemplate}"/>
    </StackPanel>
</Page>
0
répondu rasx 2010-04-24 08:21:37
la source

ObjectListView me semble assez bon...

0
répondu TigrouMeow 2011-01-31 04:45:16
la source

vous pouvez obtenir ce comportement avec le DataGrid en suivant ce tutoriel (faites défiler l' faux regroupement à l'aide du ViewModel section).

la solution du tutoriel fonctionne assez bien, mais le scrolling peut être lent et son comportement imprévisible lorsque certaines lignes sont effondrées.

mise à Jour: j'ai changé la façon dont les enfants sont cachés. Au lieu de m'effondrer, j'ai enlevé des objets dans la reliure. ObservableCollection. Maintenant, le défilement fonctionne parfaitement!

0
répondu Pakman 2016-07-26 01:33:34
la source

Autres questions sur