問題タブ [hierarchicaldatatemplate]

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.

0 投票する
1 に答える
210 参照

silverlight - HierarchicalDataTemplateItemsSourceから単一のItemへ

TreeView階層データを表示するためにを実行したいのですが、 HierarchicalDataTemplate'sは、子の値が単一のアイテムでItemsSourceあるオブジェクトを指しているようですIEnumerable(InnerExceptionプロパティを持つExceptionと同様)。HierarchicalDataTemplateこれにを使用することはできますか?はいの場合はサンプルxamlを提供してください。そうでない場合はどうすればよいですか?

私はSL4を使用していますが、それがSL5であれば、バインディングのブレークポイントを試すことができたでしょう...

0 投票する
2 に答える
2550 参照

.net - Silverlight 4: TreeView/HierarchicalDataTemplate/AutoExpand の問題

Silverlight アプリケーションには、2 つの HierarchicalDataTemplate(s) を使用して必要な形式でデータを表示するツリービュー コントロールがあります。初めて開いたときにこのツリーを自動展開したいと思います(できれば、いつでも呼び出すことができるコードスニペット)。

指定されたコードに代わるものも大歓迎です。

このコントロールは、BurstPage クラスの Observable リストにバインドされています。完全なデータ構造は次のとおりです。

親要素は、1 ~ n 個の BurstPage オブジェクトを含む Burst オブジェクトです。特定の BurstPage には、1 ~ n 個の Keypoint オブジェクトが含まれる場合があります。

BurstPage.Name (たとえば 1) Keypoint.Name (たとえば A) Keypoint.Name (たとえば B) Keypoint.Name (たとえば C) BurstPage.Name (たとえば 2) BurstPage.Name (たとえば 3) Keypoint.Name (たとえば D) Keypoint .名前 (E と言う)

0 投票する
2 に答える
3026 参照

silverlight - Silverlight 4: TreeView/ HierarchicalDataTemplate/ 選択したノードの取得/ リーフの問題

上記の XAML の場合、プログラムで知る必要があります。どちらが選択されたノードまたはリーフですか?

0 投票する
1 に答える
536 参照

c# - XAML で HierarchicalDataTemplate に親の ItemsHost を使用するにはどうすればよいですか?

Panel(特に自作の)に表示したいツリーまたはメニューのようなデータ構造がありますPolarPanelが、すべての項目は同じパネルの VisualChildren である必要があります。

を定義する場合HierarchicalDataTemplate、 を作成しItemsControlsて として指定する必要がありますIsItemsHostか、それともここで間違っていますか? 親の ItemsHost を何らかの方法で参照できますか?

(私の最初の回避策はGetAllTheChildren、SelectedChild のすべての子とすべての子を再帰的に返すプロパティをルート ノードに配置することでした。これは ObservableCollection とは簡単に連携しませんGetAllTheChildren。必要以上のアイテムをリロードします)。

アイテムのビューを作成して同じ親に描画することにより、コード ビハインドでそれを実行できることはわかっていますが、WPF の間接的な自動魔法の方法を探しています。

編集:私は現在、すべてItemControls / Panelsが互いの上に描画される改善された回避策を使用しています。これにより、階層的な側面が保持されるため、上記 (GetAllTheChildren を使用) よりもはるかに優れたソリューションになります。しかし、それはまだ私の質問に答えていません...

グラフィカルに表示すると、次のよう になります。階層要素を同じスペースに配置する必要があることに注意してください。
PolarMenu の例

これに対するクリーンでシンプルな解決策はありますか?

0 投票する
1 に答える
1430 参照

c# - ツリービューアイテムの検証

ツリービュー内のアイテムを検証しようとしています。主なアイデアは、ユーザーがツリーからオブジェクトを選択し、編集可能な詳細をロードすることです。私がINotifyPropertyChanged接続しているので、これはすべて正常に機能していますが...私のモデルには検証ロジックが接続されており(IDataErrorInfo)、ツリービューにも表示したいと思います(検証エラーのあるアイテムを強調表示します)。

私はすでにいくつかのことを試しましたが、希望どおりに機能させるために、バインディングのどこに検証を配置するかがわかりません。

私の検証ControlTemplate:

treeView:

基本的に、基になるモデルに検証エラーがある場合は、ツリービューのアイテムの横に小さなアイコンを配置しようとしています。

BindingGroupを試してみましたが、それは私にとって新しいトピックであるため、それが進むべき道であるかどうかはわかりません。

何か案は?

0 投票する
1 に答える
637 参照

wpf - HierarchicalDataTemplate内でXPathを使用してCommandParameterをバインドする際の問題

私はWPFに比較的慣れていないので、少し問題が発生しました。HierarchicalDataTemplatesを使用して、XMLをTreeViewコントロールに正常にバインドしました。各ノードレンダラーは正しく(SubstepTemplateのラベルを含む)。

SubstepTemplateのボタンからViewModelのバインドされたコマンドを取得することもできますが、CommandParameterにハードコードされた値(999など)を入力した場合に限ります。XMLのcommandID属性にバインドしようとする試みはすべて失敗しました。

これが私が今持っているものです:

XML:

XAML:

ViewModelスニペット:

これを機能させるためにCommandParameterに入れる必要がある正しいBinding式は何ですか?{Binding XPath = @ commandID}が機能していないようで、その理由がわかりません。

0 投票する
1 に答える
5696 参照

wpf - WPF TreeView HierarchicalDataTemplate - 複数の子コレクションを持つオブジェクトへのバインド -> リロード

同様の問題を抱えた投稿をいくつか見てきましたが、すでにそれらすべてをフォローしようとしました。最後に、すべてのデータを画面に表示しますが、希望どおりにはなりません。しかし、始めましょう。

次のようなデータを提供する ViewModel があります。

これは私の xaml-TreeView コードです:

出力は次のようになります。

http://imgh.us/bu_treeview.jpg

私が持ちたいのは、次のような完全な構造です。

...

それで、私はここで何が欠けていますか?助けてください、ありがとう!

0 投票する
1 に答える
605 参照

wpf - 複数のサブアイテムを持つ階層ツリー

MVVMパターンを使用してWPFでこの問題を解決する方法に頭を悩ませようとしています。

win32 ツリー コントロールを WPF に変換しています。古いツリー コントロールは、これらの行に沿って Node クラス階層を使用します (BaseNode は基本クラスであり、それに続く各項目はそれから継承され、わずかに拡張されます): BaseNode、GroupNode、VehicleNode、PersonNode、EquipmentNode、SupplyNodes (など)。

これから、GroupNode は、1 つ以上の GroupNode、1 つ以上の VehicleNode、および 1 つ以上の PersonNode である子ノードのリストを持ちます。

VehicleNode には、車両を操作する乗組員となる PersonNodes のリストがあります。VehicleNode には、車両の乗客である PersonNodes のリストも含まれます。これらはそれぞれ、Crew と Passengers というラベルの付いた「ダミー」ノードの下にあります (ただし、どちらも PersonNode タイプです)。

これ以外では、VehicleNode と PersonNode はそれぞれ EquipmentNode と SupplyNode を持ちます。

ツリーにはいくつかの「グループ」ノードがあり、展開するとそのタイプの項目が一覧表示されます。

願わくば、このテキスト図が問題の解決に役立つことを願っています。

  • 地上艦隊 (GroupNode)
    • 西海岸 (GroupNode)
    • 東海岸 (GroupNode)
      • トラック 1 (VehicleNode)
      • トラック 2 (VehicleNode)
        • 乗組員 (DummyNode)
          • ドライバーに請求する (PersonNode)
        • 乗客 (DummyNode)
          • 乗客 1 (PersonNode)
          • 乗客 2 (PersonNode)
            • 装備品(ダミーノード)
              • カメラ (EquipmentNode)
              • サングラス (EquipmentNode)
            • 備品(ダミーノード)
              • アップル(サプライノード)
              • 水筒 (SupplyNode)
          • 装備品(ダミーノード)
            • ジャック (EquipmentNode)
            • タイヤ鉄 (EquipmentNode)
          • 備品(ダミーノード)
            • スペアタイヤ (SupplyNode)
      • 人事(ダミーノード)
        • セールスマン トム (PersonNode)
        • 地区マネージャーのサリー (PersonNode)
したがって、トラック 2 (VehicleNode) のインスタンスには、さまざまなタイプの 6 つの子ノード (BaseNodes のリスト) があります。// {Bill The Driver(PersonNode), Passenger 1 (PersonNode), Passenger 2 (PersonNode), Jack (EquipmentNode), Tire Iron (EquipmentNode), SpareTire (SupplyNode)}

既存の win32 ツリーでは、Truck 2 ノードを追加するときに、子ノードを手動で循環させ、ダミー ノード (必要に応じて) と子を追加して、子リスト内のノードのタイプと、場合によってはプロパティに基づいてツリーを作成します。子ノード - PersonNode には、乗客か乗務員かを示すフラグがあるため、追加する親ノードがどの親ノードに属するかがわかります。

上記のようにダミーノードを保持できるツリー上のMVVMアプローチでこれを表現する方法に苦労しています。

どんな助けでも大歓迎です!

0 投票する
1 に答える
676 参照

wpf - 非常に複雑なレイアウト用の HierarchicalDataTemplate

ハーブ データベース プログラムを作成していますが、メイン データ クラスの HierarchicalDataTemplates の設定に問題があります。

必要なツリー レイアウト:

  • 用語集
    • カテゴリー1
      • レター (リスト全体のサイズを縮小)
        • エントリ
          • 注1
          • 注2
  • ハーブ

    • 植物名

      • アルファベット順
        • レター (リスト全体のサイズを縮小)
          • エントリ
      • 家族別
        • 家族
          • エントリ
    • 一般名

      • レター (リスト全体のサイズを縮小)
        • エントリ

注:すべてのエントリにメモがあります 注2:文字はソート用のアルファベットです

元:

  • a
    • りんご
  • b
    • バス

メインクラス:

用語集エントリ:

ハーブエントリー:

編集: @AngelWPF からのリンクのおかげで、オブジェクトを表示するツリーを取得できました。しかし、現在、ツリーは次のようになっています。

  • ハーブ
    • 一般名
      • エントリからの CommonName アイテム
      • エントリからの別の CommonName 項目
    • 一般名
      • エントリからの CommonName アイテム
      • エントリからの別の CommonName 項目

自分の階層に合わせてこの変更を行うにはどうすればよいですか?

XAML:

0 投票する
2 に答える
5743 参照

wpf - HierarchicalDataTemplate を使用して XML 要素と属性を表示するにはどうすればよいですか?

TreeView に任意の XML を表示し、ノードを展開したり折りたたんだりして、要素名と一連の属性とその値の両方を表示したいと考えています。HierarchicalDataTemplate でこれを行うことができると思います。

次のように、HierarchicalDataTemplate を使用して任意の XML要素とテキスト ノードを表示するためのヒントを見てきました。

これはうまくいきます。各要素の要素名とテキストが表示されます。しかし、私の XML は属性を使用して情報を運びます。スキーマは複雑で、正式な定義がないため、今のところ任意の XML として扱っています。

最も単純なドキュメントは次のようになります。

上記の HierarchicalDataTemplate 定義を使用して、表示用にこれを取得します。

ここに画像の説明を入力

私が欲しいものではありません。ノードごとに、要素名と一連の属性とその値の両方を表示したいと考えています。

私はこれを試しました:

...ちょっと近づきますが、 Value="{Binding Path=Attributes}"結果としてTreeViewに「(コレクション)」が表示されます。

ここに画像の説明を入力

要素名に加えて、実際のすべての属性名と値を簡単に表示するにはどうすればよいですか?