31

次のようなものが必要です。

代替テキスト

(TreeView と ListView の両方の側面が必要です。つまり、階層と列です。)

しかし、WPFで必要です。これは組み込まれているものですか、それとも自分で構築する必要がありますか?

VS2010 は WPF でビルドされているため、フレームワークのどこかにある必要があると思います。

編集: TreeView と親グリッドの列にバインドされた列を持ついくつかのグリッドを使用して、必要な機能の一部を取得することができましたが、機能には癖が多すぎます。

編集2:私はまだこれを行う方法をまだ見つけていません。何か案は?

4

7 に答える 7

12

MSDN のこの投稿では、ネイティブ WPF を利用して TreeView/Grid ハイブリッドを実現しています。これは、TreeView および Grid コントロールに基づいています。複数の列を持つツリービューをサポートしていますが、並べ替えやフィルタリングはサポートしていません

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

編集:私は最近このコードを統合しましたが、非常にうまく機能し、まさにあなたが望むものを提供します:

于 2012-02-03T10:36:22.487 に答える
6

Xceed.Wpf.DataGridを検討しましたか?

ここでフルバージョン のデモを見ることができます。

Extended WPF Toolkit ™ - Ms-PL ライセンスの一部としてCommunity Editionもあります。

完全版の機能
一覧 Community Edition の機能一覧
残念ながら、表形式の編集が見つかりませんでした。

PS

  1. Visual Studio 2010 (Professional エディション) でSnoop (WPF Spy ユーティリティ) とSpy++を使用すると、 WatchLocal、およびAutosツール ウィンドウ内に表示されるTreeGridが、Wpf コンポーネントではないTREEGRIDと呼ばれることがわかりました。(しかし、それが何であるかはわかりません)。 興味深いことに、ブレークポイントツール ウィンドウは、 SysTreeView32SysListView32という 2 つのコンポーネントを並べて使用して構築されていることがわかりました。

  2. 私は Xceed とは一切関係ありません :-)

編集:
Hierarchy は両方のバージョンで実現できるようですが、Master-DetailFull versionにのみ存在し、Community バージョンではGroupsを使用してのみ取得できます。
:-(

于 2013-08-05T13:02:38.827 に答える
0

TreeView のテンプレートで特別に配置された共有 Grid オブジェクトを使用して、この表示を偽造できる場合があります...

ただし、Visual Studio で表示されるものが実際に WPF コントロールの実装であるとは思いません。Visual Studio 2008 にもあり、カスタム ネイティブ コントロールまたはカスタム Windows フォーム コントロールのいずれかである可能性があります。

ただし、朗報です。このエクスペリエンスが絶対に必要であり、すぐに必要な場合は、完全なハックですが、WPF アプリで Windows フォーム相互運用を使用してください。

Microsoft の従業員は、2006 年に winforms のTreeGridView実装についてブログに書いています。

于 2010-05-11T08:14:21.467 に答える
-1

ObjectListViewは私にはかなり良いようです...

于 2011-01-31T01:45:16.633 に答える
-1

このチュートリアルに従うことで、DataGrid でこの動作を取得できます( ViewModelセクションを使用して Fake グループをスクロールします)。

チュートリアルの解決策は十分に機能しますが、スクロールが遅くなる可能性があり、一部の行が折りたたまれていると動作が予測できなくなります。

更新:子の非表示方法を変更しました。行を折りたたむ代わりに、バインドされた ObservableCollection 内のアイテムを削除しました。スクロールが完全に機能するようになりました!

于 2011-10-12T20:09:07.493 に答える
-2

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>
于 2010-04-24T04:21:37.647 に答える