問題タブ [treeview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET の TreeView ですべての子ノードのリストを取得する方法
WinForms .NET アプリケーションに TreeView コントロールがあります。このコントロールには、複数のレベルの子ノードがあり、複数の子ノードを持つ子ノードがあり、深さが定義されていません。ユーザーが任意の親ノードを選択した場合 (ルート レベルである必要はありません)、その親ノードの下にあるすべてのノードのリストを取得するにはどうすればよいですか?
たとえば、私はこれから始めました:
問題は、このループの深さが定義されており、ノードが 3 レベル下に埋もれていることだけです。次にユーザーが親ノードを選択したときに、7 つのレベルがあるとしたら?
design-patterns - あるタイプの木構造を別のタイプに変換するための設計パターン?
マップ内のレイヤーの階層を表す一種のツリー構造があり、レイヤーの種類とカテゴリで分割されています。各ノードは、異なるタイプのレイヤーに対して異なるクラスにすることができます (ただし、すべてのノードは共通のインターフェースを実装します)。
そのクラスを ASP.NET TreeView コントロールに変換する必要があります。入力ツリーの各ノードは出力ツリーのノードであり、ノードのタイプに依存するプロパティ セットがあります。入力ツリー クラスに UI クラスを認識させたくないので、"ToTreeViewNode()" メソッドを記述できません。現在、具象ノード クラスには 4 つのタイプがあり、そのうち 2 つは複合 (子ノードを含む) で、2 つはリーフです。これは将来変更される可能性があります。
使いたくてうずうずするデザインパターンがここにあるような気がします。それが何であるかを見つけるのを手伝ってくれませんか?
c# - TreeView ラベル編集の質問
「Foo (1234)」のようなノードを含むツリービューがあり、ユーザーがノードの名前を変更できるようにしたいのですが、(1234) なしで Foo の部分のみです。私は最初にノードテキストを次のBeforeLabelEdit
ように変更しようとしました:
しかし、ノードをクリックして編集すると、テキストボックスに「Foo (1234)」と表示されます。
よし、それでは何か他のことを試してみましょう。
falseに設定treeView1.LabelEdit
してから、次の操作を行います。
そして でAfterLabelEdit
、LabelEdit
false に戻します。
そして、何を推測しますか?これもうまくいきません。ノードテキストを「Foo」に変更しますが、編集テキストボックスは表示されません。
何か案は?ありがとう
c# - WPF を使用して仮想化された TreeView でノードを選択する
TreeView の仮想化でノードを手動で選択して表示する方法はありますか?
TreeView で使用しているデータ モデルは、VM-MV モデルに基づいて実装されています。各 TreeViewItem の IsSelected プロパティは、ViewModel の対応するプロパティにバインドされます。また、選択した TreeViewItem に対して BringIntoView() を呼び出す TreeView の ItemSelected イベントのリスナーも作成しました。
このアプローチの問題は、実際の TreeViewItem が作成されるまで ItemSelected イベントが発生しないことです。そのため、仮想化が有効になっていると、ノードの選択は TreeView が十分にスクロールされるまで何も実行されず、イベントが最終的に発生したときに選択されたノードに「魔法のように」ジャンプします。
ツリーに何千ものノードがあり、仮想化を有効にするとパフォーマンスが大幅に向上することをすでに確認しているため、仮想化を使用したいと思っています。
c# - XmlデータのWPFTreeViewへの双方向バインディング
プレゼンテーション層にWPFを使用してForestPadアプリケーションを書き直そうとしています。WinFormsでは、プログラムで各ノードにデータを入力していますが、可能であれば、WPFのデータバインディング機能を利用したいと思います。
一般に、WPF TreeViewをXmlドキュメントに双方向でデータバインドするための最良の方法は何ですか?
一般的な解決策は問題ありませんが、参考までに、バインドしようとしているXmlドキュメントの構造は次のようになります。
asp.net - UpdatePanel で asp:TreeView の選択したノードがリセットされるのはなぜですか?
2 を含む asp.net 2.0 ページがありますUpdatePanels
。
最初のパネルにはコントロールが含まれていTreeView
ます。3 つのビュー コントロールでノードを選択すると、2 番目のパネルUpdatePanel
のみの更新がトリガーされます。これだけ正しく動作しています。
更新パネルの外側のページには 2 つのボタンがあります (前/次)。これらのボタンは、両方のパネルの更新をトリガーします。ボタンの動作は、ツリー内の隣接するノードを選択することです。これらのボタンのいずれかを初めてクリックすると、期待どおりの動作が得られ、隣接するノードが選択され、両方のパネルが更新されてこの変更が反映されます。
これらのボタンのいずれかをもう一度クリックすると、問題が発生します。ツリービューの選択されたノードは、以前に選択されたノードを覚えているようで、ボタンはこのノードで動作します。したがって、前/次のボタンの動作は、何もしないか、2 つ戻ることです。
編集- 私の問題を示すサンプルコード
マークアップ
コードビハインド
ツリーのビューステートが保存されていないようですか?
asp.net - asp:TreeView が UpdatePanel にある場合、前の選択をクリアするにはどうすればよいですか?
2 つの UpdatePanels を含む ASP.Net 2.0 ページがあります。最初のパネルには TreeView が含まれています。2 番目のパネルにはラベルが含まれており、ツリーでの選択によってトリガーされます。ノードを選択すると、期待どおりにラベルが更新され、TreeNode
クリックしたノードが強調表示され、以前に選択したノードが強調表示されなくなります。ただし、ノードが元のコード ビハインドで強調表示 (選択) されている場合、別のノードを選択しても強調表示は削除されません。
マークアップ
コードビハインド
最初は最初のノードが選択されています。別のノードを選択したときにハイライトが削除されないのはなぜですか?
また、回答が得られていない同じセットアップについて別の質問をしました。どんな助けでもいただければ幸いです。
編集設定ChildrenAsTriggers="false"
が機能することはわかっていますが、ツリーが非常に大きくなる可能性があるため、ツリーを再度レンダリングすることは避けたいと思います。
c# - .NET TreeView で複数選択を許可する
.NET 2.0 Windows Forms で行き詰まっています。
TreeView
複数のノードを選択する機能が標準コントロールに存在するようには見えません。
コンテキストメニューの選択のためにこれをやろうとしています。したがって、ここではチェック ボックスは受け入れられる UI パラダイムではありません。
非常に必要な機能を提供する最良の方法は何ですか?
asp.net - Asp.net ツリー ビュー
TreeView を更新パネルに配置し、マウス ホバーの下線が表示されるたびに HoverNodeStyle-Font-Underline="true" を配置しました。
javascript - 最高のAJAXTreeView
非同期JSONロードをサポートする優れたAJAXツリービューにはどのようなものがありますか。
YUI TreeViewは良さそうですが、テーブルなどで肥大化しています。