問題タブ [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.
wpf - wpfHierarchicalDataTemplateでインターフェイスを使用する任意の方法
こんにちは私はツリーの一部であるインターフェースIFooNodeを使用しています。
HierarchicalDataTemplateを使用して、このツリーをTreeViewに表示したかったのです。ただし、これはインターフェイスが原因で機能しません。どちらも私が「いい」と呼ぶものではないという2つの方法があります
どのタイプが実際にIFooNodeを実装しているかを調べ(FooNodeと呼びましょう...)、FooNodeを定義するアセンブリを見つけ、そのアセンブリへの参照を追加して、FooNodeのHierarchicalDataTemplateを作成します(Implementatingクラスが変更されないことを期待しています...)
IFooNodeをラップするクラスMyCoolIFooNodeWrapperForWpfを作成し、ツリーにバインドせずに、ツリールートからMyCoolIFooNodeWrapperForWpfのリストを入力し、MyCoolIFooNodeWrapperForWpfのHierarchicalDataTemplateを作成します。
データの種類に関係なく、どういうわけか常にHierarchicalDataTemplateを適用できますか(これはそれほど悪ではないと思います...)
他のアイデアはありますか?
wpf - HierarchicalDataTemplate から生成された TreeViewItem の TreeViewItem スタイル/テンプレートを指定するにはどうすればよいですか?
状況:
TreeView で表される 2 つのクラスがあります。DiskSpec および DiskSet。DiskSpec は単独で存在することも、DiskSet の子になることもできます。ユーザーが DiskSpec を DiskSpec ノードから DiskSet にドラッグしてその DiskSet に追加できるように、DragDrop 機能を有効にする作業を行っています。現在、1つのことを除いてすべてが機能しています。私の DragDropHelper クラスは、そのコントロールがドラッグ ソースまたはドロップ ターゲットであることを ItemsPresenter (または関連クラス) で指定する必要があります。
私の TreeView は次のように設定されています。
問題:
したがって、実際には 2 つの TreeViewItem スタイルが必要です。DiskSets (DiskSpecs を提示する ItemsPresenter が DropTarget であることを指定する) に対して 1 回、ItemsPresenter が DragSource であることを指定する他のすべてに対して 1 回。
残念ながら、HierarchicalDataTemplate オブジェクトから TreeViewItem Style または Template を設定する方法は見たことがありません。また、この ItemTemplate が特定の DataType 専用であることを指定する方法もないようです。
何かご意見は?または、何か不足していますか?
私の XAML からいくつかのサンプルを以下に示します。
デフォルトの TreeViewItem
DragDropHelper プロパティ設定の例については、ItemsPresenter セクションを参照してください。
ツリービュー構造
Bea Stolnitz のブログ投稿: データ バインドされた ItemsControl 間でアイテムをドラッグ アンド ドロップするにはどうすればよいですか?
c# - WPFツリービューデータテンプレート
私がこのようなものを持っているとしましょう:
そのようなタイプのデータテンプレートを実装するにはどうすればよいですか?現在私は持っています:
ただし、これにはフォルダの内容は表示されません。2番目のテンプレートDataTypeはlocal:TopicFolderである必要があるようですが、これはWPFでは許可されていません。
助言がありますか?
UPD:TreeViewは次のようにObservableCollection <TopicFolder>にバインドされます:
PS:それは間違いなくプライベート/パブリック/プロパティの問題ではありません。投稿されたフィールドに対応するパブリックプロパティがあります。出力にバインディングエラーはありません。FolderContentアイテムが表示されていないだけです。
c# - WPF TreeView-ノードの追加/削除後にツリーを更新する方法は?
私はこの記事を参照します:
WPF TreeView HierarchicalDataTemplate - 複数の子コレクションを持つオブジェクトへのバインド
次のようにツリー構造を変更します。
Entry.cs で:
Source.cs で:
XAML ファイル内:
UserControl.cs で:
特定のノード「エントリ」を右クリックしてエントリの下に新しいノード「ソース」を追加すると (「追加」メソッドを呼び出す)、エントリの下に新しい「ソース」オブジェクトが正常に追加されますが、この新しいノードが表示されません。ツリービューで。ノードの追加/削除時にツリービューを更新する方法は?
wpf - HierarchicalDataTemplateを使用したWPFローカライズされたTreeView
つまりね:
単純なWPFWindowsアプリケーションがあります。このアプリケーションには、いくつかの階層データを使用しTreeView
て構築され、フィードされているが含まれています。HierarchicalDataTemplate
階層データ構造は、に子アイテムを含むFakeRecクラスで構成されていList<FakeRec>
ます。各アイテムには、タイトル文字列プロパティが含まれています。したがって、私のXAMLには、次のものがあります。
これは正常に機能し、生成されたものTreeView
に各ノードのタイトルが表示されます。
次に、このツリー全体をローカライズ可能にします。FakeDirResources.Resxにリソースがあります(別のアセンブリにありますが、それは問題ではありません)。私がこれを行う場合:
私のツリーは空白です(明らかに、私のFakeDirResources.resx
ファイルにはキーを持つリソースがないためですが、他のバインディングのTitle
を使用しTitle
、リソースを介して解決してから、何らかの方法で結果をツリーにバインドする必要があります。
TextBlock
ツリーやに関係なく、ウィンドウにaを配置するだけでHierarchicalDataTemplate
、次のように問題なくリソースにバインドできることに注意してください。
これはうまく機能し、文字列をフェッチします。System.Threading.Thread.CurrentThread.CurrentUICulture
プロバイダーを変更して更新すると、この文字列は新しい言語に変更されます。
問題は、2つをどのように組み合わせるかです。私は何が欠けていますか?いくつかのトリックが必要だと思います(そして、WPFでの私の短い経験では、それはおそらく簡単なトリックではありません)。
乾杯!
アロン。
wpf - TreeView、ObjectDataProvider、HierarchicalDataTemplate、xsd2Code が何も表示されない
xsd2code で作成されたオブジェクト階層があります。オブジェクト階層は、タイプ Project のルート オブジェクトで構成されます。このルート オブジェクトには、folder という名前の Folder の ObservableCollection が含まれています。これは、folder という名前の Folder と file という名前の File の ObservableCollection を含む再帰オブジェクトです。このオブジェクト階層を ObjectDataProvider を介して TreeView にバインドし、 HierarchicalDataTemplate 定義による表示
ObjectDataProvider と DataTemplates は、このように App.xaml にマージされたリソースで定義されます
TreeView は次のように定義されます
グローバル処理は次のとおりです。Xml ファイルからオブジェクト階層を読み込みます (xsd2code 機能)。デバッグでわかるように、オブジェクト階層はきれいです。次に、次のようなコードでオブジェクト階層を ObjectDataProvider にバインドします。
さて、TreeView には何も表示されません。何が欠けていますか?
.net - HierarchicalDataTemplate スキップ階層
私は次のようなデータ構造を持っています
レベル1 ---レベル2
----レベル3 ------レベル
4
に示されていHierarchicalDataTemplate
ます。これまでのところ問題ありませんが、レベル 2 と 3 をスキップして、レベル 4 がレベル 1 のすぐ下になるようにしたいと考えています。それは可能ですか?
silverlight - HierarchicalDataTemplate を使用して Silverlight で TreeView を設定し、ItemSource を使用してバインドする
私は TreeView を構築しようとしており、次のリンクのように設定しています:
Silverlight と WPF - HierarchialDataTemplate を使用したツリービュー
提供された最初の実際の回答へのコメントとして、ポスターはそれをどのように解決したかを述べていますが、コードを提供していませんでした。エンティティとグループのセットアップ構造は同じです。xamlが最終的にどのように見えるかを誰かが説明できるかどうか疑問に思っていました。彼らが新しいノード クラスを作成したということは、基本的にグループのリストを含むクラスを作成したことを意味しているだけだと思います。何かのようなもの
私はちょうど3つのレベルの深さに行こうとしています:
グループ 1
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
Group2
- - - - Entity1
- - - - Entity2
- - - - AnotherGroup1
- - - - - - - - entity1
- - - - - - - - entity2
- - - - AnotherGroup2
- - - - - - - - entity1
など...
私が言ったように、私はこれに慣れていません。私はまた、このチュートリアルを使用しようとしています:
しかし、別の HierarchicalDataTemplate を設定しようとすると、ItemTemplate が複数回設定されていると表示されます。道に迷いました。
編集:ウェブでこのリンクを見つけました。それも役立ちます....私は思う...
http://www.codeproject.com/Articles/36451/Organizing-Heterogeneous-Data-on-a-WPF-TreeView.aspx
wpf - フィールド/プロパティに適用される HierarchicalDataTemplate
HierarchicalDataTemplate をプロパティに適用することは可能ですか? 私はそれをDataTypeに適用できることを知っていますが、それは完全に機能しますが、ジェネリッククラスがあり、唯一の区別可能な要素がこのクラスの列挙型である場合はどうなりますか? それで、どうにかして列挙型の値に別の HierarchicalDataTemplate を適用できますか??
はじめまして、
ユルゲン
wpf - マルチバインディングのバインディングを使用した ConverterParameter
MultiBinding の ConverterParameter に Binding を追加することは可能ですか? このようなもの:
IsFiltered は、テンプレートが適用されるオブジェクトのプロパティです。Binding が正しくない/ConverterParameter で許可されていないという XAML パーサー エラーが常に発生します...または、これを行う他の方法はありますか??
はじめまして、
ユルゲン