問題タブ [treeviewitem]

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 投票する
4 に答える
2739 参照

wpf - WPF: TreeViewItem の構成コントロールを取得する

階層データテンプレート内にある場合、コードで TreeViewItem を構成する構成コントロールを取得するにはどうすればよいですか?

そのため、プログラムで TreeViewItem をソースとしてイベントを取得すると、local:RenamingNode を取得できるようにしたいのですが、TreeViewItem の子孫を取得できません。

ありがとう、

イリヤ

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

silverlight - 新しく作成されたアイテムの TreeViewItem を取得する

「childItem」を取得するには、次の方法よりも良い方法が必要です

何らかの理由で item.ItemGenerator.ContainerFromItem(child) が機能しません (作成されたばかりのアイテムが原因である必要があります)

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

wpf - WPF - スタイルを持つ TreeViewItem ルート ノードごとに異なる ToggleButton イメージを設定する

WPF でスタイル、リソース、およびテンプレートを使用するのは初めてです。私がする必要があるのは、TreeView の ToggleButton +/- をオーバーライドして、TreeViewItem ルート ノードごとに異なるイメージでイメージにすることです。たとえば、「Car」ノードには車の画像、「Plane」ノードには飛行機の画像が必要です。それぞれのカラフルな画像とグレースケールの画像があります(展開/折りたたみ用)。

ツリービューをオーバーライドしてトグル ボタンのイメージ セットを取得するスタイルを見つけましたが、各項目を異なるスタイルにする最善の方法がわかりません。

アイテムのスタイル コードは非常に長いので、ソース プロパティを変更するためだけに完全なスタイルをコピーして貼り付けるよりも良い方法があると確信しています。

誰かがこれを行うための最良の方法で正しい方向に私を向けてもらえますか?

ありがとうございました。

これは私が遊んでいたスタイルで、別の投稿からコピーされ、私の画像用に変更されています.

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

c# - 処理されたRoutedEventは引き続きツリーをバブルアップします

ベースのコントロールを開発していTreeViewますが、ダブルクリックイベントがノードをバブルし続けていますTreeViewItem

目標は、TreeViewItemダブルクリックしたときに展開または折りたたむことです。

イベントのイベントハンドラーをMouseDoubleClickそれぞれに適用するスタイルがありますTreeViewItem

イベントを処理するコードは次のとおりです

これはトップレベルでは問題なく機能TreeViewItemしますが、子をダブルクリックすると、イベントによってツリーがバブルアップし、ブランチ全体が崩壊します。なぜイベントはバブルを続けているのですか?前述のように、[1]私はイベントを処理済みとして設定しています。

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

c# - ツリービュー内のすべてのTreeViewItemの折りたたみイベントにコマンドをバインドする方法はありますか?

私はこの質問の人がやりたかったことと同じようなことをしようとしています。

そこで提案されている回避策よりも、これを行うためのよりエレガントな方法はありますか

(最後の手段として)これを行うためのより良いサポートを持つ別のmvvmフレームワークはありますか?

今、私は次のように、ツリービューから継承するカスタムコントロールを作成しようとしています。

次に、実行したいコマンドをItemCollapsedCommand依存関係プロパティにバインドします。ただし、これでも機能しません。

InvalidOperationException「ディスパッチャの処理は中断されましたが、メッセージはまだ処理中です。」というメッセージが表示され続けます。

何か案は?

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

c# - Wpf- TreeViewItem.Loaded イベントをトリガーした TreeViewItem を取得するにはどうすればよいですか?

ハンドラーがロードされるときにそれぞれにいくつかのハンドラーをアタッチしTreeViewItem、アンロードされるときにハンドラーを削除しようとしています。

から継承するカスタムコントロールにあるコードは次のTreeViewとおりです。

編集:

私はまだ何が起こっているのか理解できません。TreeView ロードされたイベントではなく、ロードされたイベントを取得しているようTreeViewItemです。

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

wpf - 既存の TreeViewItem コントロール テンプレートを変更または「微調整」しますか?

わかりました... これは一種の 2 部構成です。(ちょっと。実際にはただの 1 つかもしれません。とにかく、それが私が望んでいることです。)

まず、より一般的には、XAML のみを介して、コントロールのテンプレート内の名前付き項目をターゲットにすることは可能ですか? たとえば、コントロールのテンプレートに 'PART_Foo' という名前の ContentPresenter があり、その特定の項目の Horizo​​ntalAlignment を純粋なスタイリングによって 'Stretch' に具体的に設定したい場合、それは可能ですか? 名前でコントロールを明示的に検索し、コードでプロパティを設定するサブクラスの OnApplyTemplate オーバーライドでこれを実行できることはわかっていますが、スタイリングによって厳密にこれを実行できるように、XAML のみのソリューションを望んでいます。サブクラスではなく、特定のユースケースのシナリオを除いて、とにかくほとんど推奨されていません。

また、コントロールのテンプレートを手動で指定する必要はありません。現在のテーマによってそのテンプレートが何であるか、つまりコントロールがどのように表示されるかを決定する必要があるからです。「テーマが選択したテンプレートに「foo」という名前のパーツがある場合は、純粋なスタイリングを介してこのプロパティを設定します。その名前のパーツが見つからない場合は、何もしないでください。

XAML のみのアプローチが望まれるのは、コントロール自体ではなく、生成されたコンテナー オブジェクトをターゲットにしているという 2 番目の部分のためです。特にItemsControlが仮想化されている場合、これはa$$の本当の苦痛です。

詳細については、最終的な目標は、TreeView の TreeViewItem のテンプレートで「Bd」という名前の Border を選び出し、その添付プロパティ「Grid.ColumnSpan」をデフォルトの「1」ではなく「2」に設定することです。それでおしまい!TreeViewItem のテンプレート全体を手動で置き換えたり、コード ビハインド ベースのソリューションに頼ったりしなければ、これほど単純なことはほぼ不可能に思えることに驚かされます。

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

.net - App.xamlのwpfツリービューにグローバルスタイルを適用する方法

フォーカスが離れたときにツリービューに選択したアイテムを表示するための次のコードを見つけましたが、コードをApp.xamlに移動して、すべてのUserControlで使用できるようにするのに問題があります。

これは私が望むことをします

しかし、それからスタイルを作る方法がわかりません。私は次のことを試しましたが、構文的に正しい継ぎ目です

そして、ユーザーコントロールで

ある時点で、UserControlコードはスタイルを認識しましたが、現在は「リソースTreeStyleを解決できませんでした」と表示されています。
私は何が間違っているのですか?
別の(親)名前空間であるApp.xamlにあるため、TreeStyleのスコープを設定する必要がありますか?スタイルを使用して取得したら、他のプロパティを設定するための構文は何ですか?

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

wpf - DataBinding後のWPF TreeViewItemヘッダー値

データバインディングを介してデータセットからコンテンツ(ネストされたTreeViewItems)が生成されるTreeViewがありますが、これはすべて正常に機能しているようです。私が直面している問題は、コードで TreeViewItem ヘッダーの内容を操作しようとすると、Header プロパティが TreeViewItem が生成された DataRowView を返すことであり、予想どおり、テンプレートによって生成されたコントロールではありません。

TreeViewItems を生成するために使用しているテンプレートの例を次に示します。

誰かが私が間違っている場所を指摘して、ヘッダーのチェックボックスにアクセスする方法を教えてもらえますか (理想的には、可能であれば VisualTree を掘り下げることなく)。

ありがとう、ジェームズ

0 投票する
3 に答える
22853 参照

wpf - WPF ダブルクリック TreeviewItem 子ノード

私はそれにバインドされたリストを持つツリービューにツリービューアイテムを持っています:

その子のそれぞれにダブルクリックイベントを持たせる方法がわかりません。

どんな助けでも大歓迎です。どうもありがとう。