問題タブ [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 投票する
1 に答える
3118 参照

wpf - WPF ツリービュー ツールチップ - 動的

これは、MVVM と WPF に関するもので、WPF ツリービュー項目上のマウスの位置に基づいて動的なツールチップを表示します。ユーザーが、ツールチップを表示する必要があることに基づいてビジネスデータを取得したノードにカーソルを合わせるとします。

例: 管理項目にカーソルを合わせると、"ロックされています" と表示され、他の項目は "編集可能" と表示されます。項目データ上のマウスに依存します。ツールチップ テキストは、ユーザーがさらにアクションを実行するようにガイドする必要があります。TreeViewitem のツールヒントを開くイベントを使用してツールヒント テキストの VM 設定を行い、ツールヒント テキストを更新しようとしていますが、いくつかの問題に直面しています。

それを行うための最善かつ簡単な方法は何ですか。動作を試してみたところ、エラーが発生しました。

コード:


TreeTooltipBehavior.cs


私のビュー モデルでは、ToolTipOpeningCommand を処理し、Behavior クラスを介してイベントを取得するのに十分な宣言を行うことを期待しています。

興味深いことに、コンテキストメニューの動作は正常に機能しますが、ツールチップの動作は xaml パーサー例外をスローします..

1) 私は適切な場所で定義されていますか (動作のために) ? 2) Contextmenu の動作が機能する場合、なぜ tooltipbehavior ではないのでしょうか? 3)上部に貼り付けられた例外からの手がかりはありますか?

私は、(Xaml)-tooltip 動作 -> (behavior クラス) で tooltipopening イベントを呼び出す -> ViewModel で定義されたコマンドを呼び出すことを期待しています。コンテキストメニューに対してこれと同様の方法を試してみましたが、うまくいきました。

この問題を解決するためのヒントを提供してください。

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

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 間でアイテムをドラッグ アンド ドロップするにはどうすればよいですか?

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

wpf - ボタン付きのツリービュー

各ノードにアイコンと説明テキストがある TreeView があります。しかし、ノードを選択できるようにしたくありません。代わりに、各ノードがボタンとして機能するようにします。ユーザーがコマンドを押すと、コマンドが実行されます。ただし、ボタンやハイパーリンクのように見えない場合があります

これは私がこれまでに試したことです。問題は、テキストが青色で、テキストに下線が引かれていることです。さらに、ノードが選択されているために青色になっている場合があります。

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

wpf - テキストをクリックして、ツリービューでグループを展開/折りたたみます

左の矢印をクリックする代わりに、テキストをクリックするだけでTreeViewのグループを展開/折りたたみできるようにするにはどうすればよいですか。

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

wpf - WPF TreeViewで選択する「バブル」を拒否する方法は?

いくつかの構造を持つ階層的な TreeView オブジェクトがあります。

  • メインレベル
    • セカンドレベル1
    • セカンドレベル3
    • セカンドレベル2

問題は、第 2 レベルのアイテムを選択すると、メイン レベルのアイテムの「選択済み」イベントが発生することです。どうすれば否定できますか?ブール値フラグと元のソース プロパティでいくつかのトリックを使用しようとしましたが、失敗しました。e.Handled = true でも結果が得られません。

アドバイスをありがとう、そして私の悪い英語をごめんなさい!

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

wpf - プロジェクトフォルダ構造に基づくWpfTreeviewバインドベース

現在、プロジェクトのプログラムに読み込みたいファイルのカタログがあります。構造。

私のプログラムでは、上記の各ファイルは独自のビジネスオブジェクトで表されています。私のプログラムでこれをツリービューに含めることができるようにしたいと思います。

これらのファイルを1回だけロードするので、これらのファイルを1回読み取り、ツリービューにバインドします。これを行うためのエレガントな方法はありますか?

ありがとう、Kev

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

c# - WPFツリービューは特定の深さまで展開しますか?

データバインドされた TreeView があります。TreeViewItems を拡張したいのですが、深さは 3 としましょう。

通常、私は TreeViewItem.ExpandSubtree() を発行しますが、それはすべてを展開するので、かなり単純なはずなので、自分で作ってみましたか?

これが私が試したものです。以下のメソッドを作成し、ツリービュー ItemContainerGenerator とツリービューの項目コレクションを深さ 3 で渡します。

問題は、最初にすべてのサブアイテムの ItemContainerGenerator を再帰的にコールバックすると、ステータスが「NotStarted」になり、呼び出されるたびに null が返されることです。ヌルをトラップしている間、ツリーは必要な深さ 3 ではなく深さ 1 までしか開かないことを意味します。

ここで何が欠けていますか?

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

wpf - 条件に基づいて TreeViewItem が選択されないようにする方法

私はwpf TreeViewを持っています - いくつかのデータにバインドされています。ツリー ビューはウィンドウの左側にあり、ツリーがナビゲーションである 2 つの領域に分割され、右側のパネルは選択したツリー ノードに応じてコンテンツが変化します。

ツリービューのすべてのノードが詳細情報を生成するわけではありません。それらのノードの選択を無効にしたい。何か案が?

ありがとう

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

wpf - TreeViewItem isSelected が 2 回発生

さまざまなアイテムを含む TreeView があります。アイテムは、IsSelected プロパティが VM に bool IsSelected にバインドされるようにスタイル設定されています。

ツリー ビュー アイテムをクリックするたびに、この VM プロパティが 2 回呼び出されます。最初は value==false、次に value==true です。

これは通常の動作だと思いますが、IsExpended プロパティが同じ方法でバインドされており、一度しか呼び出されないことを考えると、その理由はわかりません。

ありがとう

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

silverlight - silverlight 4 のツリービューが暗黙のうちにバインディング エラーをスローする

そのため、以下のタイプにバインドされた Silverlight ツリービュー コントロールがあり、ページの を、オブジェクトのリストでDataContextあるプロパティを持つ ViewModel のインスタンスに設定します。DivisionsRmDivision

そして、次のようにバインドされます。

これで、treeeview アイテムをクリックするたびに、次の出力ウィンドウにのみ例外が発生しなくなりました。

System.Windows.Data エラー: BindingExpression パス エラー: 'xxx.Base.RmDivision' 'xxx.Base.RmDivision' で 'Division' プロパティが見つかりません (HashCode=35753827)。BindingExpression: Path='Division' DataItem='xxx.Base.RmDivision' (HashCode=35753827); ターゲット要素は 'System.Windows.Controls.ContentControl' (Name='') です。ターゲット プロパティは 'Content' (タイプ 'System.Object') です。

私はここでちょっと初心者で、何が起こっているのか本当にわかりません。それがツリービューであることを知る唯一の方法は、それがDivisionプロパティで何かをしなければならない唯一のコントロールだからSelectedValuePathです。 RmDivision のインスタンスになり、現在は次のように機能します。

よろしく